[root@huan ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEalpine 3.10.1 b7b28af77ffe 13 months ago 5.58MB
提交容器
[root@huan ~]# docker commit[root@huan ~]# docker commit -p myalpine oldboy1103/alpine:v3.10.3_with_1.txt
固化到只读层了
docker导出镜像到宿主机
[root@huan ~]# docker save b7b28af77ffe > alpine:v3.10.3_with_1.txt.tar[root@huan ~]# ll-rw-r--r-- 1 root root 5852160 8月 15 20:03 alpine:v3.10.3_with_1.txt.tar
导入镜像
[root@huan ~]# docker load < alpine\:v3.10.3_with_1.txt.tar[root@huan ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE<none> <none> b7b28af77ffe 13 months ago 5.58MB
使用docker images发现REPOSITORY和TAG都是none,使用tag即可打标签
[root@huan ~]# docker tag b7b28af77ffe oldboy1103/alpine:v3.10.3_with_1.txt[root@huan ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEoldboy1103/alpine v3.10.3_with_1.txt b7b28af77ffe 13 months ago 5.58MB
把标准输出重定向到日志
docker run hello-world 2>&1 >>/dev/null
查看日志,不加-f也可以
docker logs -f 容器镜像ID
docker容器的高级操作

不是因为难,而是因为特别重要。
下载nginx
[root@huan ~]# docker pull nginx:1.12.2[root@huan ~]# docker tag 4037a5562b03 oldboy1103/nginx:v1.12.2[root@huan ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEoldboy1103/alpine v3.10.3_with_1.txt b7b28af77ffe 13 months ago 5.58MBnginx 1.12.2 4037a5562b03 2 years ago 108MBoldboy1103/nginx v1.12.2 4037a5562b03 2 years ago 108MB
端口映射,容器外端口:容器内端口
[root@huan ~]# docker run --rm --name mynginx -d -p81:80 oldboy1103/nginx:v1.12.2
下载百度首页进行演示
[root@huan ~]# mkdir html[root@huan html]# wget www.baidu.com -O index.html[root@huan html]# docker run -d --rm --name nginx_with_baidu -d -p82:80 -v /root/html:/usr/share/nginx/html oldboy1103/nginx:v1.12.2

inspect命令
docker inspect 容器ID
容器传递环境变量
[root@huan ~]# docker run --rm -e E_OPTS=abcdefg oldboy1103/alpine:latest printenvPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binHOSTNAME=b6759d28963fE_OPTS=abcdefgHOME=/root
进入容器
[root@huan ~]# docker exec -ti nginx_with_baidu /bin/bashroot@0ffcc450e2f6:/# tee /etc/apt/sources.list << EOF> deb http://mirrors.163.com/debian/ jessie main non-free contrib> deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib> EOFdeb http://mirrors.163.com/debian/ jessie main non-free contribdeb http://mirrors.163.com/debian/ jessie-updates main non-free contribroot@0ffcc450e2f6:/# apt-get update && apt-get install curl -y
开始固化
[root@huan ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES0ffcc450e2f6 oldboy1103/nginx:v1.12.2 "nginx -g 'daemon of…" 5 minutes ago Up 4 minutes 0.0.0.0:82->80/tcp nginx_with_baidu[root@huan ~]# docker commit -p 0ffcc450e2f6 xxxxxxxxxxxx/nginx:curl[root@huan ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZExxxxxxxxxxxx/nginx curl 6f10e7047510 2 minutes ago 136MB[root@huan ~]# docker push xxx/nginx:curlThe push refers to repository [docker.io/xxxxxxxxxxxx/nginx]761966e456bc: Pushed4258832b2570: Mounted from library/nginx
mounted在push的时候,就会从公网的library/nginx中mount过来一层,这样就会节省网络流量z

容器内安装软件(工具)
生产干货:公司用的容器最多的发行版本是debian系,生产上大量的都是用的debian系,反而红帽系很少,包括老外。
容器的生命周期

分配一个文件系统,并在只读的镜像层外 挂载 一层可读写层,在文件系统之外,容器和容器之间是隔离的,容器和宿主机之间也是隔离的。
查看对应目录
[root@huan ~]# cd /data/docker/[root@huan docker]# ll总用量 48drwx------ 2 root root 4096 8月 15 14:19 builderdrwx--x--x 4 root root 4096 8月 15 14:19 buildkitdrwx------ 3 root root 4096 8月 15 20:51 containersdrwx------ 3 root root 4096 8月 15 14:17 imagedrwxr-x--- 3 root root 4096 8月 15 14:17 networkdrwx------ 10 root root 4096 8月 15 21:04 overlay2drwx------ 4 root root 4096 8月 15 14:17 pluginsdrwx------ 2 root root 4096 8月 15 14:19 runtimesdrwx------ 2 root root 4096 8月 15 14:19 swarmdrwx------ 2 root root 4096 8月 15 20:47 tmpdrwx------ 2 root root 4096 8月 15 14:17 trustdrwx------ 2 root root 4096 8月 15 14:17 volumes[root@huan docker]#[root@huan docker]#[root@huan docker]# ll containers/总用量 4drwx------ 4 root root 4096 8月 15 21:04 0ffcc450e2f63796863cf55061a7bc406f6d12e76399d6893e6c3e6567f18f18
查看IP
[root@huan docker]# ip add | grep -C 5 docker0link/ether 52:54:00:6e:c0:80 brd ff:ff:ff:ff:ff:ffinet 172.17.0.15/20 brd 172.17.15.255 scope global eth0valid_lft forever preferred_lft foreverinet6 fe80::5054:ff:fe6e:c080/64 scope linkvalid_lft forever preferred_lft forever3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group defaultlink/ether 02:42:19:f7:50:b4 brd ff:ff:ff:ff:ff:ffinet 172.17.0.15/24 brd 172.17.0.255 scope global docker0valid_lft forever preferred_lft foreverinet6 fe80::42:19ff:fef7:50b4/64 scope linkvalid_lft forever preferred_lft forever11: veth652299c@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group defaultlink/ether 16:d4:8f:44:0b:e6 brd ff:ff:ff:ff:ff:ff link-netnsid 0inet6 fe80::14d4:8fff:fe44:be6/64 scope linkvalid_lft forever preferred_lft forever
生命周期图

