1、安装docker
1 2 3 |
[root@imzcy ~]# yum -y install docker-io [root@imzcy ~]# systemctl start docker [root@imzcy ~]# systemctl enable docker |
2、编辑jaemon.json配置文件,添加网易镜像站
1 2 3 4 5 6 7 |
[root@imzcy ~]# cat /etc/docker/daemon.json { "registry-mirrors": ["http://hub-mirror.c.163.com"] } [root@imzcy ~]# [root@imzcy ~]# systemctl daemon-reload [root@imzcy ~]# systemctl restart docker |
3、常用命令
3.1.1 docker run
:以指定的镜像来创建一个新的容器并运行指定命令
Docker首先会从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像(如下所示就是从Docker Hub下载的镜像)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
//以下命令的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo "Hello world",然后输出结果。 [root@imzcy ~]# docker run ubuntu:15.10 /bin/echo "Hello world" Unable to find image 'ubuntu:15.10' locally Trying to pull repository docker.io/library/ubuntu ... 15.10: Pulling from docker.io/library/ubuntu 7dcf5a444392: Pull complete 759aa75f3cee: Pull complete 3fa871dc8a2b: Pull complete 224c42ae46e7: Pull complete Digest: sha256:02521a2d079595241c6793b2044f02eecf294034f31d6e235ac4b2b54ffc41f3 Status: Downloaded newer image for docker.io/ubuntu:15.10 Hello world [root@imzcy ~]# |
3.1.2 docker run -t -i
:以交互模式运行容器(exit退出后容器即停止运行)
1 2 3 4 5 6 7 |
[root@imzcy ~]# docker run -t -i ubuntu:15.10 /bin/bash root@9a4888eb6a6f:/# root@7fbcd4b67e7b:/# cat /etc/issue Ubuntu 15.10 \n \l root@9a4888eb6a6f:~# exit exit [root@imzcy ~]# |
3.1.3 docker run -d
:后台运行容器,并返回容器ID
1 2 3 |
[root@imzcy ~]# docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done" acadd3c4632e9b72048f25ef31ad755150edbe7399407d2feb950b327e3fba56 [root@imzcy ~]# |
3.2 docker ps
:列出容器
可以加-a选项列出所有容器(包括未运行的容器)
1 2 3 4 5 6 7 8 9 10 |
[root@imzcy ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES acadd3c4632e ubuntu:15.10 "/bin/sh -c 'while..." 3 seconds ago Up 3 seconds jovial_saha [root@imzcy ~]# [root@imzcy ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES acadd3c4632e ubuntu:15.10 "/bin/sh -c 'while..." 3 seconds ago Up 3 seconds jovial_saha 7cd47a21eb75 ubuntu:15.10 "/bin/echo 'Hello ..." About a minute ago Exited (0) About a minute ago jolly_jepsen [root@imzcy ~]# |
3.3 docker image
:列出本地镜像
1 2 3 4 |
[root@imzcy ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/ubuntu 15.10 9b9cb95443b5 2 years ago 137 MB [root@imzcy ~]# |
3.4 docker logs
:查看容器日志
1 2 3 4 5 6 7 8 9 |
//后面跟docker ps显示出来的容器ID和分配的容器NAMES都行 [root@imzcy ~]# docker logs acadd3c4632e |head -n 6 hello world hello world hello world hello world hello world hello world [root@imzcy ~]# |
3.5 docker stop
:停止容器
1 2 3 |
[root@imzcy ~]# docker stop acadd3c4632e acadd3c4632e [root@imzcy ~]# |
3.6 docker rm
:删除容器
1 2 3 |
[root@localhost ~]# docker rm acadd3c4632e acadd3c4632e [root@localhost ~]# |
3.7 docker rmi
:删除镜像
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
//列出本地所有镜像 [root@imzcy ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/ubuntu 15.10 9b9cb95443b5 2 years ago 137 MB [root@imzcy ~]# //显示所有的容器,包括未运行的 [root@imzcy ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7cd47a21eb75 ubuntu:15.10 "/bin/echo 'Hello ..." 53 minutes ago Exited (0) 52 minutes ago jolly_jepsen [root@imzcy ~]# //删除容器(要想删除一个镜像,必须先删除docker ps -a显示的使用该镜像的所有容器,之后才能删除镜像) [root@imzcy ~]# docker rm 7cd47a21eb75 7cd47a21eb75 [root@imzcy ~]# //删除镜像 [root@imzcy ~]# docker rmi 9b9cb95443b5 Untagged: docker.io/ubuntu:15.10 Untagged: docker.io/ubuntu@sha256:02521a2d079595241c6793b2044f02eecf294034f31d6e235ac4b2b54ffc41f3 Deleted: sha256:9b9cb95443b5f846cd3c8cfa3f64e63b6ba68de2618a08875a119c81a8f96698 Deleted: sha256:b616585738eaf78ff7d86c7526caf7c91a35bc4028ef63204e5bfee82f7494b5 Deleted: sha256:dee1316f97acc7e1a5088b02fbc2b3078e0bfa038dd904b8072e2de5656e7bb8 Deleted: sha256:e7d9ae1a69c53c9fefa1aef34348be5a5dbf2fe79e7dd647b3d4f4e927587ebc Deleted: sha256:f121afdbbd5dd49d4a88c402b1a1a4dca39c9ae75ed7f80a29ffd9739fc680a7 [root@imzcy ~]# |