一 创建容器
1 docker run
创建容器常用的参数说明:
-i:表示运行容器
-t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即
分配一个伪终端。
--name :为创建的容器命名。
-v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使 用多个-v 做多个目录或文件映射。注意:最好做目录映射,在宿主机上做修改,然后 共享到容器上。
-d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会 自动登录容器,如果只加-i -t 两个参数,创建后就会自动进去容器)。
-p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p 做多个端口映射
以交互方式运行容器: docker run -i -t --name 容器名称 repository:tag /bin/bash docker run -it --name 容器名称 imageID /bin/bash
以守护进程方式运行容器: docker run -di --name 容器名称 repository:tag docker run -di --name 容器名称 imageID
注意:通过 run 创建并进入容器之后,如果使用 exit 命令退出容器,则容器停止。再次进入该容器,先使用 start 启动容器,再使用 exec/attach 命令进入容器。
2 docker create
docker create --name mycontainer1 centos:7
但通过docker ps命令无法看到创建的容器,因为容器没有启动;需要使 用start命令
二 启动容器
docker start CONTAINER ID/NAME
命令:run、create、start
• 区别:run = create + start
• 示例: • docker create --name mycontainer1 mycentos
但通过docker ps命令无法看到创建的容器,因为容器没有启动;需要使 用start命令
• docker start 1a93677f84f5(后面是container ID) • docker run -d --name mycontainer2 mycentos(直接使用run命令)
三 进入容器
进入正在运行的容器的命令如下:
docker exec -it 容器名称或者容器 ID /bin/bash docker attach 容器名称或者容器 ID
两者之间的区别: attach 进入容器之后,如果使用 exit 退出容器,则容器停止。 exec 进入容器之后,使用 exit 退出容器,容器依然处于运行状态。
四 查看容器
docker ps :查看正在运行的容器
docker ps -a:查看历史运行过的容器
docker ps -l:查看最近运行过的容器
五 停止容器
docker stop 容器名称或者容器 ID
六 删除容器
删除指定容器:
docker rm 容器名称或者容器 ID
删除所有容器:
docker rm docker ps -a -q
七 容器中复制文件
docker cp 源文件 目标文件 比如:
docker cp /root/boot.war my-centos:/usr/local/
说明: /root/boot.war 是宿主机器的路径 my-centos 是容器的名称 /usr/local/是容器内的路径
注意:源文件可以是宿主机器也可以是容器中的文件,同样,目标文件可以是容器也可以是宿主机器的文件。
八 容器日志
查看指定时间后的日志,只显示最后100行:
docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID
查看最近30分钟的日志:
docker logs --since 30m CONTAINER_ID
查看某时间之后的日志:
docker logs -t --since="2018-02-08" CONTAINER_ID
实时查看日志
docker logs -f -t --tail 行数 容器名
九 删除已经停止的容器
显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID,
sudo docker ps -a|grep Exited|awk '{print $1}'
查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器
sudo docker rm docker ps -a|grep Exited|awk '{print $1}'
十 docker 容器的端口映射和镜像提交
10.1 下载一个tomcat镜像并启动
docker pull tomcat
docker run -it -p8888:8080 tomcat #前台启动,映射的端口为8888
docker run -d -P tomcat #后台启动,映射的端口为随机端口
10.2 查看映射的端口,下面两个都是随机端口
10.3 浏览器访问
5.4 镜像提交-定制自己想要的镜像
docker commit -a "hnf" 353ac85b6017 hnf/tomcat02:1.2
# -a 作者信息 353ac85b6017 为容器id , hnf 为命名空间,tomcat02:1.2是新镜像的名字
然后用刚才提交的镜像,去生成一个新的容器,下面是我新提交的镜像
docker run -d -P hnf/tomcat02:1.2 #利用新的镜像去生成一个新的容器
如下图: