Docker使用说明

Posted 鹤啸九天-西木

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker使用说明相关的知识,希望对你有一定的参考价值。

Docker 镜像一般都保存在仓库中,假设镜像存放在:

        仓库:hub.docker.com

        目录:linux/os

        镜像名:centos6u3

        版本号:1.0.0.0

那么:

一、用户登录仓库:

docker login https://xx.yy.com/

特殊的,如果仓库是:https://hub.docker.com/,则直接使用:docker login 进行登录。

二、拉取(下载)镜像文件:

docker pull hub.docker.com/linux/os/centos6u3:1.0.0.0

镜像名之后需要用冒号(:)指定版本号,否则会报错:Error response from daemon: manifest for hub.docker.com/linux/os/centos6u3:latest not found: manifest unknown: manifest unknown 

三、查看本地镜像文件:

docker images

会展示本地镜像的5个信息,分别是:

        REPOSITORY:包含全路径的镜像名

        TAG:版本号

        IMAGE ID:镜像ID           

        CREATED:创建时间

        SIZE:镜像大小

四、查看容器情况:

// 查看正在运行的容器的信息
docker ps
// 查看所有容器的信息,包括已经关闭(退出)的容器信息
docker ps -a

会展示加载镜像后生成的容器的7个信息,分别是:

        CONTAINER ID:生成的容器ID       

        IMAGE:加载的镜像名,包含全路径                                                           

        COMMAND:容器启动后可使用的命令行类型

        CREATED:容器创建时间            

        STATUS:容器状态,有多种状态:

                Created:创建了容器,但未启动过;

                Up:容器正在运行,运行期间可以暂停容器中所有进程(Paused);

                Exited:容器已停止(关闭),Exited状态码如下:

状态码说明
0正常退出
非0异常退出(退出状态码采用 chroot 标准)
125Docker 守护进程本身的错误
126容器启动后,要执行的默认命令无法调用
127容器启动后,要执行的默认命令不存在
137容器收到了 SIGKILL 信号,进程被杀掉, 即执行docker stop命令,对应kill -9
139容器收到了 SIGSEGV 信号,无效的内存引用,对应kill -11
143

 容器收到了 SIGTERM 信号,终端关闭,对应kill -15 

               Destroyed:容器已被销毁,说明已被删除,无法查看容器信息;  

        PORTS:容器监听的端口

        NAMES:容器的名称,如果启动时不用--name指定,则会随机生成名称,建议指定名称,避免不知道启动的容器是哪个

五、创建容器:

docker create -it --net host --name 容器名 hub.docker.com/linux/os/centos6u3:1.0.0.0 /bin/bash

创建时参数:-i 设置以交互模式运行容器,-t 设置为容器分配一个伪输入终端。如果不指定,容器启动后就直接退出;

创建时参数:--net 指定容器的网络类型,不设置的话容器无法连网,--name 指定容器的名称;

创建时如果不指定版本号,则默认会使用版本号Tag为latest的版本,如果无latest版本的本地镜像则会报错

创建时必须指定命令行类型,否则会报错: Error response from daemon: No command specified

六、启动容器:

// 启动容器
docker start 容器名/容器ID
// 重启容器
docker restart 容器名/容器ID

七、进入容器:

docker exec -it 容器名/容器ID /bin/bash

八、创建、启动并进入容器:

docker run -it --net host --name 容器名 hub.docker.com/linux/os/centos6u3:1.0.0.0 /bin/bash

九、暂停/恢复容器的进程:

// 暂停容器的进程
docker pause 容器名/容器ID
// 恢复容器的进程
docker unpause 容器名/容器ID

十、停止容器:

docker stop 容器名/容器ID

十一、查看容器日志:

docker logs 容器名/容器ID

十二、容器打包成镜像:

docker commit 容器名 镜像名:版本号

也可以不指定版本号,则该镜像的版本号为latest。

十三、给镜像打标签(重命名并指定仓库路径):

docker tag 镜像名/镜像ID 标签名:版本号

标签名的组成部分包括:包含协议的仓库地址+仓库目录+镜像别名

不加版本号时默认生成的版本号为latest。

特殊的,如果仓库是:https://hub.docker.com/,在dockerhub仓库建的目录名必须与镜像别名同名(比如在账号lzghxjt下创建目录test1,那么镜像的标签名必须是lzghxjt/test1),否则会push失败,提示:Error response from daemon: pull access denied for xxx, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

十四、删除容器:

docker rm 容器名/容器ID

正在运行的容器不能删除。

十五、删除本地镜像:

docker rmi 镜像名/镜像ID

被容器使用的镜像不能删除。

以上是关于Docker使用说明的主要内容,如果未能解决你的问题,请参考以下文章

使用 docker 如何使用 docker run 将文件从 docker 复制到主机 [重复]

使用docker部署node项目(一)

[Docker] docker-compose使用教程

安装使用NVIDIA-Docker-- 可使用GPU的Docker容器

docker运行Spring Cloud使用外部IP

容器安全之不使用Docker的默认网桥docker0