有镜像才能创建容器

  1. [root@test docker]# docker pull centos
  2. Using default tag: latest
  3. latest: Pulling from library/centos
  4. 7a0437f04f83: Pull complete
  5. Digest: sha256:5528e8b1b1719d34604c87e11dcd1c0a20bedf46e83b5632cdeac91b8c04efc1
  6. Status: Downloaded newer image for centos:latest
  7. docker.io/library/centos:latest
  8. [root@test docker]# docker images
  9. REPOSITORY TAG IMAGE ID CREATED SIZE
  10. tomcat latest feba8d001e3f 3 weeks ago 649MB
  11. centos latest 300e315adb2f 5 weeks ago 209MB
  12. //从阿里云拉下的centos镜像是精简版的,去除了硬件虚拟机化的资源。

新建并启动容器 docker run

常用的是 联合 it命令
—name=”容器新名字”:为容器指定一个名称;
-d:后台运行容器,并返回容器ID,也即启动守护式容器;
-i:以交互模式运行容器,通常与t同时使用;
-t:为容器重新分配一个伪输入终端,通常与-i同时使用;
-P:随机端口映射;
-p:指定端口映射,有以下四种格式
ip:hostPort:containerPort
ip::containerPort
hostPort:containerPort
containerPort

  1. [root@test docker]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. tomcat latest feba8d001e3f 3 weeks ago 649MB
  4. centos latest 300e315adb2f 5 weeks ago 209MB
  5. [root@test docker]# docker run -it 300e315adb2f
  6. //以300e315adb2f镜像iD和centos为模板生成了名称随机的,容器id为961203efc636的容器
  7. //登录进入后悔弹出一个伪终端并可以交互运行容器
  8. [root@961203efc636 /]#
  9. [root@961203efc636 /]# ls
  10. bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
  11. [root@961203efc636 /]# ps -ef //在当前容器中查看进程
  12. UID PID PPID C STIME TTY TIME CMD
  13. root 1 0 0 00:31 pts/0 00:00:00 /bin/bash
  14. root 20 1 0 00:55 pts/0 00:00:00 ps -ef
  15. [root@test docker]# docker images //查看容器
  16. REPOSITORY TAG IMAGE ID CREATED SIZE
  17. tomcat latest feba8d001e3f 3 weeks ago 649MB
  18. centos latest 300e315adb2f 5 weeks ago 209MB
  19. [root@test docker]# docker run -it --name=ttt 300e315adb2f
  20. // 以ttt为名称运行 镜像id为 300e315adb2f的centos容器,容器id为a5f32b921be3
  21. //进入容器后可以执行linux命令
  22. [root@a5f32b921be3 /]# ps -ef
  23. UID PID PPID C STIME TTY TIME CMD
  24. root 1 0 1 01:15 pts/0 00:00:00 /bin/bash
  25. root 15 1 0 01:15 pts/0 00:00:00 ps -ef

容器查看类 docker ps - xxx 查看容器的什么

1.查看正在运行的所有容器 docker ps

  1. [root@test docker]# docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. a5f32b921be3 300e315adb2f "/bin/bash" 41 seconds ago Up 38 seconds ttt
  4. 961203efc636 300e315adb2f "/bin/bash" 44 minutes ago Up 44 minutes optimistic_cohen
  5. //以/bin/bash 命令的方式登录进了id为961203efc636的容器,状态是up,表示登录状态。
  6. //在启动容器时没有指定容器的名称,docker给容器随机分配了一个名称 optimistic_cohen
  7. //一个镜像可以启动多个容器

2.查看当前所有正在运行的容器+历史上运行过的 docker ps -a

3.查上两次运行过的容器 docker ps -n 2

  1. [root@test docker]# docker ps -n 2
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. a5f32b921be3 300e315adb2f "/bin/bash" 4 hours ago Up 4 hours ttt
  4. 961203efc636 300e315adb2f "/bin/bash" 5 hours ago Exited (0) 3 hours ago optimistic_cohen

4.查看正在运行的容器id docker ps -q

5.查看当前和历史运行(全部)的容器的id docker ps -qa

6.查看当前和历史创建过(全部)的运行容器 docker ps -a

  1. [root@test docker]# docker ps -a
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. a5f32b921be3 300e315adb2f "/bin/bash" About an hour ago Up About an hour ttt
  4. 961203efc636 300e315adb2f "/bin/bash" 2 hours ago Exited (0) 7 minutes ago optimistic_cohen
  5. 04bb185c0723 bf756fb1ae65 "/hello" 2 days ago Exited (0) 2 days ago

7.查看上一次创建的容器 docker ps -l

  1. [root@test docker]# docker ps -l
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 36b0cd7d9ffe 300e315adb2f "/bin/bash" 2 minutes ago Exited (0) 2 minutes ago clever_leavitt

8.查看上一次创建过的容器的id docker ps -lq

-q:静默模式,只显示容器编号。

  1. [root@test docker]# docker run -it 300e315adb2f
  2. [root@36b0cd7d9ffe /]# exit
  3. exit
  4. [root@test docker]# docker ps -lq
  5. 36b0cd7d9ffe

容器停止类:

1.容器停止退出 exit

  1. [root@961203efc636 /]# exit
  2. exit
  3. [root@test docker]# //容器退出运行后回到docker终端
  4. [root@test docker]# docker ps
  5. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  6. a5f32b921be3 300e315adb2f "/bin/bash" 41 seconds ago Up 38 seconds ttt
  7. 961203efc636 300e315adb2f "/bin/bash" 44 minutes ago Up 44 minutes optimistic_cohen
  8. [root@test docker]# docker ps
  9. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  10. a5f32b921be3 300e315adb2f "/bin/bash" 57 minutes ago Up 57 minutes

2.退出停止的/停止后启动容器

docker start +上一次退出的容器ID

3.退出停止的/停止后重启容器

docker restart +容器ID

4.停止容器 含有停止时间

docker stop +容器ID

5.强制停止容器 不给停止时间

docker kill +容器ID

  1. [root@test docker]# docker start 80fa0daedeb9
  2. 80fa0daedeb9
  3. [root@test docker]# docker ps
  4. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  5. 80fa0daedeb9 300e315adb2f "/bin/bash" 8 minutes ago Up 8 minutes recursing_tu
  6. [root@test docker]# docker restart 80fa0daedeb9 //启动后重启容器
  7. 80fa0daedeb9
  8. [root@test docker]# docker ps
  9. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  10. 80fa0daedeb9 300e315adb2f "/bin/bash" 9 minutes ago Up 7 seconds recursing_tu
  11. [root@test docker]# docker stop 80fa0daedeb9
  12. 80fa0daedeb9
  13. [root@test docker]# docker ps //直接停止后查看正在运行的容器
  14. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  15. [root@test docker]# docker stop 80fa0daedeb9 //直接停止
  16. 80fa0daedeb9
  17. [root@test docker]# docker restart 80fa0daedeb9 //直接停止后重新启动容器
  18. 80fa0daedeb9
  19. [root@test docker]# docker ps
  20. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  21. 80fa0daedeb9 300e315adb2f "/bin/bash" 15 minutes ago Up 4 seconds recursing_tu

6.容器不停止退出 CTRL+P+Q

CTRL+P+Q

删除类:

1.删除单个容器

docker rm 容器id

2.删除当前正在运行的容器

docker rm -f $(docker ps -q)

3.删除全部的容器 (包含正在运行的和已经关闭的)

docker rm -f $(docker ps -qa) 等同于
docker ps -a -q |xargs docker rm xargs为linux可变参数,
意味着把管道符上一个命令的结果集传递给下一个命令。

  1. [root@test docker]# docker ps -qa
  2. 6f7563e2fef3
  3. e467a5fd904b
  4. 4010fc643ce7
  5. 5e3f3e103a27
  6. 80fa0daedeb9
  7. 36b0cd7d9ffe
  8. 78aaa48d284a
  9. a5f32b921be3
  10. 961203efc636
  11. [root@test docker]# docker rm -f $(docker ps -qa)
  12. 6f7563e2fef3
  13. e467a5fd904b
  14. 4010fc643ce7
  15. 5e3f3e103a27
  16. 80fa0daedeb9
  17. 36b0cd7d9ffe
  18. 78aaa48d284a
  19. a5f32b921be3
  20. 961203efc636
  21. [root@test docker]# docker ps -qa
  22. [root@test docker]#

4.删除镜像

docker rmi +镜像id