Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docker常用命令 #4

Open
iott opened this issue Jan 3, 2019 · 0 comments
Open

docker常用命令 #4

iott opened this issue Jan 3, 2019 · 0 comments

Comments

@iott
Copy link
Owner

iott commented Jan 3, 2019

本文只记录docker常用命令,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来。

概览

  • 容器生命周期管理
    docker [run|start|stop|restart|kill|rm|pause|unpause]

  • 容器操作运维
    docker [ps|inspect|top|attach|events|logs|wait|export|port]

  • 容器rootfs命令
    docker [commit|cp|diff]

  • 镜像仓库
    docker [login|pull|push|search]

  • 本地镜像管理
    docker [images|rmi|tag|build|history|save|import]

  • 其他命令
    docker [info|version]

docker 状态信息查看

docker info

Docker 镜像管理

创建镜像
  • 根据DockerFile构建容器
    Step1:创建Dockefile文件及其相关依赖文件
    Step2:切换到Dockerfile文件所在目录,执行如下命令:
    cd DockerFile所在目录
    docker build -t 镜像名 .
    
  • 根据已有镜像实例化后进行交互式环境修改后保存
    Step1:根据已有镜像实例化容器,记录容器ID,并进入交互式命令行
    docker run -it 已有镜像名称 /bin/bash
    
    Step2:在交互式命令行执行相关操作后退出交互式命令行
    Step3:执行如下命令创建镜像
    docker commit 容器ID 镜像名称
    
修改镜像
  • 对照创建镜像,修改镜像同样有两种方式:
    1.修改Dockerfile后重新创建镜像
    2.根据已有镜像实例化后进行交互式环境修改后保存
查看所有镜像列表

docker images 或 docker images --no-trunc

删除本地镜像
docker rmi b39c68b7af30  镜像名称
注:对于存在容器的镜像,首先需要删除其对应的容器才能删除该镜像
为镜像添加标签
docker tag 旧镜像名称 新镜像名称
注:该命令会在原有的镜像上重新生成一个新的镜像名称对应该镜像
拉取镜像
docker pull 镜像名称
注:该命令会在对应的镜像仓库查询镜像并拉取到本地
推送镜像
docker push 镜像名称

docker运行容器

docker运行容器的基本命令:

docker run -参数 镜像名称 执行命令

运行容器命令可以分解为三个部分,分别是参数,镜像名称和执行命令

  • 参数:
1.  -it:-i参数用设置容器中的STDIN是开启的。-t参数表示为创建的容器分配一个伪tty终端。 二者通常联合使用。
2.  --name 容器名:用于为启动的容器设置一个容器名称。
3.  -d:将程序放在后台执行,用于创建守护式容器。
4.  --restart:设置自动重启,可以设置什么情况下重启,例如--restart=always,--restart=on-failure:5。
5.  -p:端口映射。例如:8000:80表示将容器的80端口映射到宿主机的8000端口。80表示将容器的80端口映射到宿主机的任意端口。
6.  -P:端口映射,将容器Dockerfile中EXPOSE指定的端口映射到宿主机的任意端口。
7.  -w:指定工作目录
8.  -h:为容器设置HOST主机名称。
9.  --entrypoint:强制指定启动程序。
10.  -v:卷映射。示例:/home/nianshi/logs:/logs表示将宿主机的/home/nianshi/logs目录挂载到容器的/logs目录下。
11.  --link:容器链接。示例:redis:db表示将容器名称为redis的容器连接到新建的容器上,同时设置别名为db。此时在新容器中可以使用db来表示redis容器的地址。
12.  --volumes-from:参数用于连接某个指定容器的卷,从而可以访问到指定容器中的所有的卷。示例:blog_demo表示新容器中挂载了blog_demo容器中所有的卷。
13.  --rm:表示容器运行完成后自动删除。
  • 镜像名称
    此处镜像名称需要输入完成的镜像名称。
    镜像名称的格式如下:[Registry/][username/]简要镜像名称[:标签]
    注:其中Registry默认为Docker Hub地址; 对于官方源,username不需要填写,否则必填;简要镜像名称必填;标签默认为latest。
  • 执行命令
    执行命令为启动容器时需要执行的操作。
    例如:
    /bin/bash
    

docker启动/停止容器

  • 启动一个目前尚未运行的容器
    docker start 容器名称/容器ID 
    
  • 停止一个运行中的容器
    docker stop 容器名称/容器ID
    

docker进入容器命令行

当我们启动了一个有交互式运行环境的容器时,可以执行如下命令来进入交互式环境。

docker attach 容器名/容器ID
或
docker exec -it 容器名称/容器ID

docker已有镜像中运行命令/启动进程

docker exec -参数 容器名称/容器ID 执行命令

查看容器

查看所有容器列表
docker ps -a

查看正在运行的容器

docker ps
查看指定容器的详细信息
docker inspect 容器名称/容器ID

查看docker状态

docker stats

查看容器端口

docker port 容器名称/容器ID

查看指定容器进程

docker top 容器名称/容器ID

docker 查看指定容器日志

docker logs 容器名称/容器ID
注:可以添加-f来监控日志文件,-t参数来增加时间戳。

启动容器

docker run -d 容器名

停止容器

docker stop 容器名称/容器id

重启容器

docker start 容器id

删除容器

docker rm 容器名称/容器ID

删除所有容器

docker rm `docker ps -a -q`

将宿主机目录拷贝到容器

docker cp /ROOT.war mytomcat2:/usr/local/tomcat/webapps
注: cp:拷贝命令;将ROOT.war文件拷贝到mytomcat2容器中的/usr/local/tomcat/webapps目录下
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant