Docker常用命令集锦

   在虚拟机中运行docker服务(确保服务已安装)

sudo systemctl start docker

重启Docker服务
systemctl restart docker / service docker restart

守护进程重启

systemctl daemon-reload
关闭Docker
docker service docker stop / docker systemctl stop docker

设置Docker服务开机启动

systemctl  enable docker.service

1、docker所有命令查看

docker --helper

2、某个具体命令的使用帮助,比如run命令的使用

docker run --help

3、run命令:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

IMAGE:指容器运行的镜像名,默认在本地找,如果本地没找到则去仓库寻找并下载安装。
部分OPTIONS参数说明: -d: 后台运行容器,并返回容器ID; -i: 以交互模式运行容器,通常与 -t 同时使用; -P: 随机端口映射,容器内部端口随机映射到主机的高端口 -p: 指定端口映射,格式为:主机(宿主)端口:容器端口 -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用; --name="nginx-lb": 为容器指定一个名称;
--restart=always: 创建容器时设置容器自动重启



docker run ubuntu:15.10 /bin/echo "Hello world"    表示运行镜像名为:ubuntu:15.10  并用bin目录下echo文件 打印字符串
docker run -i -t ubuntu:15.10 /bin/bash            docker的两个参数 -i -t,让docker运行的容器实现"对话"的能力
cat /proc/version                     用来查看当前镜像的版本?我测试的时候显示宿主机的linux版本

docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

这句是说在bin/sh中 运行"while true; do echo hello world; sleep 1; done"脚本不停打印hello world方便我们查看效果命令执行完成后,会返回当前docker的ID值
 
docker run -p 80:80 -v /data:/data -d nginx:latest   使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。
docker run -p 127.0.0.1:80:8080/tcp ubuntu bash      绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上
docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py   如果要绑定 UDP 端口,可以在端口后面加上 /udp

docker run -p 127.0.0.1:8080:8080 --name="XX_Manager_Test" -d xxmanager_test:v1 给容器命名且在后台运行

docker run -d -p 8080:80 --name="OA_Manager_v1_Test" oamanager_test:v1 可通过-p指令建立宿主对容器对应端口的访问(注:8080为宿主端口,安全组中应放开对8080的访问)

docker run -d --net=host --name="OA_Manager_v1_Test" oamanager_test:v1 此方式不能指定端口

docker port 容器的名字                               查看某个容器对应的端口号

4、容器相关操作

docker start 容器ID或名称                           启动容器
exit 或者 Ctrl + D                     可以退出容器
docker stop 容器ID或容器名称                        停止容器
docker rm 容器ID或名称                   移除容器(移除前请确保容器是停止状态否则会报错:Error response from daemon: You cannot remove a running container......)
docker ps                                              查看当前启动的所有容器(含ID、名称及其他信息)
docker ps -l                                          查看最后一次创建的容器             
docker ps -a                               查看之前所有创建过的容器
docker logs                                            容器ID或名称,查看容器logs的标准输出                    eg:docker logs f62f773aec0c
docker port 容器的名字                               查看某个容器对应的端口号
docker update --restart=always 容器名称或ID  设置容器随服务启动而启动 

5、镜像相关操作

 
docker images                     查看主机本地所有镜像

参数说明
  • REPOSITORY:表示镜像的仓库源

  • TAG:镜像的标签(同一个仓库源,标签可以有多个表示多个不同的版本)

  • IMAGE ID:镜像ID

  • CREATED:镜像创建时间

  • SIZE:镜像大小

docker run -t -i ubuntu:15.10 /bin/bash       运行ubuntu仓库源Tag为15.10的镜像   (如果不注明tag,那么将使用ubuntu:latest镜像)
docker pull ubuntu:13.10         预先下载某个镜像
docker search httpd              搜索某类镜像  【其中name为源名称  description是描述  stars表示热度  official表示是否官方发布】

创建镜像的两种方式:

a、更新镜像
1、docker run -t -i ubuntu:15.10 /bin/bash 启动一个原始镜像,然后安装自己需要的软件

2、在运行的容器内运行 apt-get update 命令进行更新

3、完成后 exit 退出

4、用docker ps 查看之前运行的容器的ID值(
e218edb101611)

5、用commit来提交最新的镜像 docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
-m:是提交的描述信息 -a:是作者名字
e218edb10161:是容器ID runoob/ubuntu:v2 是新镜像的名字


6、使用docker images 来查看新创建的镜像

b、创建新镜像

touch Dockerfile 或者vi Dockerfile

2、编辑Dockerfile文件的内容并保存:
      # This is a comment
      FROM ubuntu:14.04
      MAINTAINER bill <bill@docker.com>
      RUN apt-get -qq update
      RUN apt-get -qqy install ruby ruby-dev
      RUN gem install sinatra
   参数说明: # 表示注释    FROM  表示 docker以哪个镜像作为基础   MAINTAINER 表示维护者的信息   RUN 告诉docker,在镜像内执行命令,安装了什么  

3、通过 docker build 命令来构建一个镜像【注意命令 6.7 后面的 . 号,它表示当前目录下的Dockerfile文件
   docker build -t runoob/centos:6.7 .-t :指定要创建的目标镜像名 . :Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径 】   

4、命令执行完成之后就可以通过 docker images 命令查看新建的镜像




镜像删除

1、删除镜像时请确保,停止所有的container

2、docker rmi 镜像ID 【如果在使用会提示错误】

3、docker rmi -f 镜像ID 【强制删除】

   

导出

   如果要存出镜像到本地文件,可以使用docker save命令。例如,存出本地的ubuntu:14.04镜像为文件ubuntu_14.04.tar:
   $ sudo docker save -o /home/user/images/ubuntu_14.04.tar ubuntu:14.04

导入

   可以使用docker load从存出的本地文件中再导入到本地镜像库,例如从文件ubuntu_14.04.tar导入镜像到本地镜像列表,如下所示:
   $ docker load --input ubuntu_14.04.tar

   $ docker load -i ubuntu_14.04.tar

   $ docker load < ubuntu_14.04.tar

原文地址:https://www.cnblogs.com/yhnet/p/11690684.html