练习环境:
成都创新互联公司网站设计,为客户量身定制各类网站建设业务,包括企业型、电子商务型、成都响应式网站建设公司、行业门户型等各类网站,实战经验丰富,成功案例众多。以客户利益为出发点,成都创新互联公司网站制作为客户规划、定制网站设计符合企业需求、带有营销价值的网络建站方案认真对待每一个客户,我们不用口头的语言来吹擂我们的优秀,上千多家的成功案例见证着我们的成长。
操作系统:CentOS Linux release 7.5.1804 (Core)
虚拟工具:VMware
应用容器引擎: Docker version 1.13.1
一.镜像
容器其实是在镜像的最上面加了一层读写层,在运行容器里做的任何文件改动,都会写到这个读写层。如果容器删除了,最上面的读写也就删除了,改动也就丢
失了。
1.配置成国内镜像
方法一:docker官方
#vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com/"]
}
方法二:阿里
[root@docker /]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://9cpn8tt6.mirror.aliyuncs.com"]
}
2.镜像常用命令操作
[root@docker /]# systemctl restart docker
#下载指定版本镜像
[root@docker /]# docker pull nginx:1.12
#显示所有镜像
[root@docker /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox v2 6e9545b1e2a2 17 minutes ago 1.22 MB
docker.io/tomcat latest 4e7840b49fad 6 days ago 529 MB
docker.io/nginx latest a1523e859360 6 days ago 127 MB
docker.io/python 3.5 0320ef7199ca 6 days ago 909 MB
docker.io/MySQL latest c8ad2be69a22 6 days ago 465 MB
docker.io/php latest e66ae809d99a 6 days ago 405 MB
docker.io/httpd latest c5a012f9cf45 7 days ago 165 MB
docker.io/mongo latest bcef5fd2979d 11 days ago 386 MB
docker.io/ubuntu latest 72300a873c2c 11 days ago 64.2 MB
docker.io/centos latest 470671670cac 6 weeks ago 237 MB
docker.io/busybox latest 6d5fcfe5ff17 2 months ago 1.22 MB
#删除所有无名称的镜像
[root@docker overlay2]# docker rmi $(docker images -f "dangling=true" -q)
#查看镜像历使
[root@docker overlay2]# docker image history centos
IMAGE CREATED CREATED BY SIZE COMMENT
470671670cac 6 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B
#显示镜像详细信息
[root@docker /]# docker image inspect nginx
......
[root@docker /]# docker image pull nginx:1.11
......
#删除指定镜像
[root@docker /]# docker image rm nginx:1.12
Untagged: nginx:1.12
Untagged: docker.io/nginx@sha256:72daaf46f11cc753c4eab981cbf869919bd1fee3d2170a2adeac12400f494728
Deleted: sha256:19f98a1ae65cc06a1f35e86ff4a7894c7f8fab2313a35503166233d470ff3752
Deleted: sha256:d626a8ad97a1f9c1f2c4db3814751ada64f60aed927764a3f994fcd88363b659
#对引用镜像做个标记
[root@docker /]# docker tag nginx:1.11 nginx:v1
[root@docker /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/nginx 1.11 5766334bdaa0 2 years ago 183 MB
nginx v1 5766334bdaa0 2 years ago 183 MB
#保存镜像文件
[root@docker /]# docker image save nginx:1.11 > nginx1.11.tar
[root@docker /]# du -sh nginx1.11.tar
182M nginx1.11.tar
#加载镜像文件
[root@docker /]# docker load Loaded image: nginx:1.11 #导出容器文件 [root@docker /]# docker export 3c28790c0a41 > sky9899.tar [root@docker /]# du -sh sky9899.tar 1.4M sky9899.tar #导入容器文件 [root@docker /]# docker image import sky9899.tar sky9899:self sha256:1302c27299d6326c256baeca85504fabb30b92abd480c234284fc567458fcac7 [root@docker /]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE sky9899 self 1302c27299d6 4 seconds ago 1.22 MB 3.容器常用操作命令 #运行容器,如果不存在,默认会下载 [root@docker sky9890]# docker container run -itd --name bs busybox Unable to find image 'busybox:latest' locally Trying to pull repository docker.io/library/busybox ... latest: Pulling from docker.io/library/busybox bdbbaa22dec6: Pull complete Digest: sha256:6915be4043561d64e0ab0f8f098dc2ac48e077fe23f488ac24b665166898115a Status: Downloaded newer image for docker.io/busybox:latest 3c28790c0a4187063324aafed93caf6d5589d17c9b458001c7b6232205a97907 #查看在使用的容器 [root@docker sky9890]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3c28790c0a41 busybox "sh" 12 seconds ago Up 10 seconds bs #执行bs容器 [root@docker sky9890]# docker container attach bs / # ls bin dev etc home proc root run sys tmp usr var / # ls bin dev etc home proc root run sys tmp usr var / # ps -ef PID USER TIME COMMAND 1 root 0:00 sh 8 root 0:00 ps -ef / # ifconfig eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:02 inet addr:172.17.0.2 Bcast:0.0.0.0 Mask:255.255.0.0 inet6 addr: fe80::42:acff:fe11:2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:16 errors:0 dropped:0 overruns:0 frame:0 TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1296 (1.2 KiB) TX bytes:648 (648.0 B) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) / #exit #退出后,容器即停止了 [root@docker sky9890]# docker container start bs bs #执行容器bs [root@docker sky9890]# docker container attach bs / # exit #退出后,容器容在运行 [root@docker sky9890]# docker container run -itd -e a=123 --name bs1 busybox b14e43e4cbc3924af1f8425edc2cce43bf8682e1f7b3436f06bfa02cb5db0071 [root@docker sky9890]# docker exec -it bs1 sh / # ls bin dev etc home proc root run sys tmp usr var / # echo $a 123 / # exit #指定容器端口 [root@docker sky9890]# docker container run -itd -p 8080:80 --name nginx01 nginx 2b6992269e6b9716c101d6cd8f11462b9bb05facbd7bae2b0b656baed2ff027d [root@docker sky9890]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2b6992269e6b nginx "nginx -g 'daemon ..." 43 seconds ago Up 41 seconds 0.0.0.0:8080->80/tcp nginx01 b14e43e4cbc3 busybox "sh" 4 minutes ago Up 4 minutes #获取nginx01容器日志 [root@docker sky9890]# docker logs nginx01 192.168.153.1 - - [04/Mar/2020:07:25:14 +0000] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko" "-" 2020/03/04 07:25:15 [error] 6#6: *3 open() "/usr/share/nginx/html/favicon.ico" failed (2: No such file or directory), client: 192.168.153.1, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "192.168.153.141:8080" 192.168.153.1 - - [04/Mar/2020:07:25:15 +0000] "GET /favicon.ico HTTP/1.1" 404 555 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0)" "-" [root@docker sky9890]# ls /var/lib/docker/containers/ #限制CPU和内存资源 [root@docker sky9890]# docker container run -itd --cpus 1 --memory 512m --name nginx02 nginx b66722038a14775cb47b9d4f954c27373433cf89a6e0a544630903d90aba1a08 #容器资源使用统计 [root@docker sky9890]# docker container stats nginx02 CONTAINER CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS nginx02 0.00% 1.375 MiB / 512 MiB 0.27% 648 B / 648 B 0 B / 0 B 2 #列出容器 [root@docker sky9890]# docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b66722038a14 nginx "nginx -g 'daemon ..." 8 minutes ago Up 8 minutes 80/tcp nginx02 2b6992269e6b nginx "nginx -g 'daemon ..." 23 minutes ago Up 23 minutes 0.0.0.0:8080->80/tcp nginx01 b14e43e4cbc3 busybox "sh" 27 minutes ago Up 27 minutes bs1 #显示容器详细信息 [root@docker sky9890]# docker container inspect b66722038a14 [root@docker sky9890]# docker exec -it nginx01 bash root@2b6992269e6b:/# [root@docker sky9890]# docker commit bs1 busybox:v2 sha256:6e9545b1e2a2254243ef2599bce5337aa5f67d57cef1d4aa7aa1622e3f1a4921 [root@docker sky9890]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE busybox v2 6e9545b1e2a2 8 seconds ago 1.22 MB docker.io/mongo latest bcef5fd2979d 11 days ago 386 MB docker.io/ubuntu latest 72300a873c2c 11 days ago 64.2 MB docker.io/centos latest 470671670cac 6 weeks ago 237 MB docker.io/busybox latest 6d5fcfe5ff17 2 months ago 1.22 MB #拷贝文件到bs1容器中 [root@docker /]# docker container cp sky9899.zip bs1:/root [root@docker /]# docker container exec bs1 ls /root sky9899.zip #重启容器 [root@docker /]# docker restart bs1 bs1 [root@docker /]# docker container exec bs1 ls /root sky9899.zip #查看容器日志 [root@docker /]# docker logs nginx01 [root@docker /]# docker port nginx01 80/tcp -> 0.0.0.0:8080 [root@docker /]# docker stats nginx02 #启动容器 [root@docker /]# docker start b66722038a14 #停止容器 [root@docker /]# docker stop b66722038a14 #删除容器 [root@docker /]# docker rm b66722038a14
本文题目:Docker镜像和容器的常用命令
分享URL:http://chengdu.cdxwcx.cn/article/jgccec.html