参考:https://docs.docker.com/engine/install/centos/
[root@docker ~]# yum instal yum-utils [root@docker ~]# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo [root@docker ~]# dnf install docker-ce [root@docker ~]#参考:https://docs.docker.com/compose/install/
[root@nginx ~]# cd /usr/local/bin [root@nginx bin]# ll total 11940 -rw-r--r--. 1 root root 12218968 Oct 20 14:30 docker-compose-Linux-x86_64 -rw-r--r--. 1 root root 94 Oct 20 14:30 docker-compose-Linux-x86_64.sha256 [root@nginx bin]# shasum -a 256 -c docker-compose-Linux-x86_64.sha256 docker-compose-Linux-x86_64: OK [root@nginx bin]# mv docker-compose-Linux-x86_64 docker-compose [root@nginx bin]# chmod +x docker-compose [root@nginx bin]# rm -f docker-compose-Linux-x86_64.sha256 [root@nginx bin]#交互式容器退出即停止运行,登录前要先启动
[root@docker ~]# docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 90d6b197c036 centos:7 "/bin/bash" 14 minutes ago Exited (0) 11 minutes ago thirsty_gauss [root@docker ~]# docker container start -i thirsty_gauss [root@90d6b197c036 /]# exit exit [root@docker ~]# docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 90d6b197c036 centos:7 "/bin/bash" 14 minutes ago Exited (0) 3 seconds ago thirsty_gauss [root@docker ~]# 登入守护式容器守护式容器通过让进程Hang在前台运行保持活动状态,登陆时需要额外起一个子shell来进行交互。
[root@docker ~]# docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0e7d3aad5b23 nginx "/docker-entrypoint.…" 13 minutes ago Up 13 minutes 80/tcp nginx01 [root@docker ~]# docker container exec -it nginx01 /bin/bash root@nginx:/# exit exit [root@docker ~]# docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0e7d3aad5b23 nginx "/docker-entrypoint.…" 15 minutes ago Up 15 minutes 80/tcp nginx01 [root@docker ~]# 交互式容器模拟守护式容器登入交互式容器后,使用Ctrl+P+Q退出就可以使交互式容器保持活动状态。
[root@docker ~]# docker container start -i thirsty_gauss [root@90d6b197c036 /]# [root@docker ~]# [root@docker ~]# docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 90d6b197c036 centos:7 "/bin/bash" 20 minutes ago Up 15 seconds thirsty_gauss [root@docker ~]# docker container exec -it thirsty_gauss /bin/bash [root@90d6b197c036 /]# exit exit [root@docker ~]# docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 90d6b197c036 centos:7 "/bin/bash" 20 minutes ago Up 38 seconds thirsty_gauss [root@docker ~]# 停止容器 [root@docker ~]# docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0e7d3aad5b23 nginx "/docker-entrypoint.…" 22 minutes ago Up 22 minutes 80/tcp nginx01 90d6b197c036 centos:7 "/bin/bash" 25 minutes ago Up 5 minutes thirsty_gauss [root@docker ~]# docker container stop thirsty_gauss thirsty_gauss [root@docker ~]# docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0e7d3aad5b23 nginx "/docker-entrypoint.…" 22 minutes ago Up 22 minutes 80/tcp nginx01 [root@docker ~]# 删除容器 删除已停止运行的容器 [root@docker ~]# docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0e7d3aad5b23 nginx "/docker-entrypoint.…" 23 minutes ago Up 23 minutes 80/tcp nginx01 90d6b197c036 centos:7 "/bin/bash" 26 minutes ago Exited (137) 43 seconds ago thirsty_gauss [root@docker ~]# docker container rm thirsty_gauss thirsty_gauss [root@docker ~]# docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0e7d3aad5b23 nginx "/docker-entrypoint.…" 23 minutes ago Up 23 minutes 80/tcp nginx01 强制删除正在运行的容器 [root@docker ~]# docker container rm nginx01 Error response from daemon: You cannot remove a running container 0e7d3aad5b23a2f1635069a5786ab041eef69dce989a6746279f057ea3c8afcc. Stop the container before attempting removal or force remove [root@docker ~]# docker container rm -f nginx01 nginx01 [root@docker ~]# 删除所有的容器 [root@docker ~]# docker container rm -f `docker container ls -a -q` e178d714771c 990f7231d847 [root@docker ~]# 退出即销毁的容器 [root@docker ~]# docker container run -it --rm centos [root@0e0ae1bea87d /]# exit exit [root@docker ~]# docker container ls -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@docker ~]# 容器的端口映射 格式举例说明说明hostPort:containerPort8080:80监听来自所有IP对本地8080端口的TCP访问请求并转发给容器的80端口hostPort:containerPort8080:80/udp…UDP …containerHost80随机分配一个本地端口,监听来自所有IP对其发起的TCP访问请求并 …ip:hostPort:containerPort13.13.7.7:8080:80监听IP地址为13.13.7.7的主机对本地8080端口的TCP访问请求并 … [root@docker ~]# docker container run -d -p 8080:80 --name=nginx02 7e4d58f0e5f3 951bc7fa09c9167882ddbabdd997c1d572e44f8cd39e98f570bf22f81e2fea0f [root@docker ~]# curl localhost:8080 <p><em>Thank you for using nginx.</em></p> [root@docker ~]# 其它指令 top:查看容器的进程信息 [root@docker ~]# docker container top nginx02 UID PID PPID C STIME TTY TIME CMD root 9583 9567 0 16:52 ? 00:00:00 nginx: master process nginx -g daemon off; 101 9632 9583 0 16:52 ? 00:00:00 nginx: worker process [root@docker ~]# logs:查看容器的日志信息 [root@docker ~]# docker container logs nginx02 172.17.0.1 - - [06/Oct/2020:08:52:56 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.61.1" "-" [root@docker ~]# cp:拷贝本地文件到容器内部 [root@docker ~]# echo "Hello World" > /tmp/index.html [root@docker ~]# docker container cp /tmp/index.html nginx02:/usr/share/nginx/html/ [root@docker ~]# curl localhost:8080 Hello World [root@docker ~]# volume:挂载本地数据卷到容器 [root@docker ~]# mkdir /media/cdrom [root@docker ~]# mount /dev/sr0 /media/cdrom/ [root@docker ~]# docker container run -it -v /media/cdrom/:/media/CentOS/ --name=volum centos [root@a5871c1fab82 /]# cat /etc/yum.repos.d/CentOS-Media.repo .... [c8-media-BaseOS] name=CentOS-BaseOS-$releasever - Media baseurl=file:///media/CentOS/BaseOS .... [root@a5871c1fab82 /]# dnf --disablerepo=\* --enablerepo=c8-media-BaseOS install openssh-server Package Architecture Version Repository Size ==================================================================================================================================================================================================================== Installing: openssh-server x86_64 8.0p1-4.el8_1 c8-media-BaseOS 485 k volumes-from:数据卷容器 [root@docker ~]# docker container run -it --volumes-from=volum centos [root@30ffe46a6cce /]# dnf --disablerepo=\* --enablerepo=c8-media-BaseOS install openssh-server Package Architecture Version Repository Size ==================================================================================================================================================================================================================== Installing: openssh-server x86_64 8.0p1-4.el8_1 c8-media-BaseOS 485 k 查看容器的详细信息(IP地址) [root@nginx ~]# docker container inspect nginx01 | head -5 [ { "Id": "5d0652cb1510cbc6fe4658ce2ce149567245bd9c4286936f3fb61ba855cfceba", "Created": "2020-10-20T07:57:10.614033114Z", "Path": "/docker-entrypoint.sh", [root@nginx ~]# docker container inspect nginx01 | grep IPAddress "SecondaryIPAddresses": null, "IPAddress": "", "IPAddress": "172.19.0.2", [root@nginx ~]#