出品|MS08067实验室(www.ms08067.com)
本文作者:大方子(Ms08067实验室核心成员)
大方子微信(欢迎骚扰交流):
目录
closed容器
Bridged容器
自定义DNS解析
开放对容器的访问
跨容器通信
Joined容器
Open容器
跨容器依赖
从容器构建镜像
审查文件系统的改动
可配置的镜像属性
镜像体积和层数限制
导出和导入压缩文件系统
帮助
docker help
docker help cp
守护方式启动动容器
docker run ‐‐detach ‐‐name web nginx:latest
容器交互
# ‐‐interactive 或‐i 保持标准输入流
# ‐‐tty 或 ‐t 为容器分配一个虚拟终端
# 输入exit退出shell,容器也会停止工作
# 若使用了‐‐tty。可以【Ctrl】+【P】+【Q】在退出shell的情况下容器不会停止工作
docker run ‐‐interactive ‐‐tty ‐‐link web:web ‐‐name web_test busybox:latest /bin/sh
开始、停止、重启、查看容器输出、查看当前的容器
docker start [容器名称|容器ID]
docker stop [容器名称|容器ID]
docker restart [容器名称|容器ID]
docker logs [容器名称|容器ID]
docker ps
docker create nginx
容器中执行命令
docker exec [容器名称|容器ID] 命令
docker run ‐d ‐‐name namespaceA busybox:latest /bin/bash ‐c "sleep 30000"
命名空间
docker run ‐‐pid host busybox:latest ps
容器标识
docker create ‐‐cidfile /tmp/web.cid nginx
docker ps ‐‐no‐trunc
检查容器元数据
docker inspect ‐‐format "{{.State.Running}}" web
容器的连接
docker run ‐it ‐‐name agent ‐‐link web:insideweb
容器的环境变量
docker run ‐d ‐‐name wpdb ‐e MYSQL_ROOT_PASSWORD=ch2demo mysql:5
docker run ‐‐env MY_ENVIRONMENT‐VAR="this is a test" busybox:latest env
只读文件系统
docker run ‐d ‐‐name wp ‐‐read‐only wordpress:4
docker run ‐d ‐‐name wp3 ‐v /run/lock/apache2 ‐v /run/apache2 ‐‐read‐only wordpress:4
持久化容器
能启动容器则放弃
docker run ‐d ‐‐name backoff‐detector ‐‐restart always busybox date
使用init和supervisor进程维持容器的运行状态
docker top lamp‐test
docker exec lamp‐test ps
清理容器
docker ps ‐a
docker rm wp
docker stop wp
docker run ‐‐rm ‐‐name auto‐exit‐test busybox:latest echo hello world
Docker Hub的使用
docker login
docker logout
docker search nginx
Docker 镜像
docker rmi nginx
docker pull quay.io/dockerinaction/ch3_hello_registry:latest
docker save ‐o myfile.tar busybox:latest
docker load ‐i myfile.tar
docker build ‐t ch3_dockerfile .
docker build ‐t diach3/dockerfile:latest ch3_dockerfile
docker tag ubuntu:15.10 runoob/ubuntu:v3
持久化存储和卷间状态共享
docker run ‐dit ‐v /root/data ‐‐name test busybox
docker run ‐dit ‐v /root/docker‐practice/data:/root/data ‐‐name test busybox
docker run ‐dit ‐‐volumes‐from test ‐‐name test1 busybox
docker run ‐dit ‐v /root/docker‐practice/data:/root/data:ro ‐‐name test busybox
docker rm ‐v test1
docker run ‐‐name dpvc ‐v /config dockerinaction/ch4_packed /bin/sh ‐c 'cp /packed*/config/'
Docker的网络
closed容器
docker run ‐‐rm ‐‐net none alpine:latest ip addr
Bridged容器
docker run ‐‐rm ‐‐net bridge alpine:latest ip addr
自定义DNS解析
docker run ‐‐rm ‐‐hostname barker alpine:latest nslookup barker
docker run ‐‐rm ‐‐dns 8.8.8.8 alpine:latest nslookup docker.com
缀名
docker run ‐‐rm ‐‐dns‐search docker.com busybox:latest nslookup registry.hub
docker run ‐‐rm ‐‐add‐host test:10.10.10.255 alpine:latest nslookup test
docker run ‐‐rm ‐‐add‐host docker.com:127.0.0.1 ‐‐add‐host test:10.10.10.2 alpine:latest
cat /etc/hosts
开放对容器的访问
docker run ‐p 333...
docker run ‐p 333:3333
docker run ‐p 192.168.0.32::2222 ....
docker run ‐p 192.168.0.32:1111:1111 ....
docker run ‐d ‐‐name woolery ‐P dockerinaction/ch5_expose
docker run ‐d ‐‐name philbin ‐‐expose 8000 ‐P dockerinaction/ch5_expose
docker port philbin
跨容器通信
Joined容器
# 让多个容器共享一个网络栈
# ‐‐net container:
[要加入的目标容器]
docker run ‐it ‐‐net container:brady alpine:latest
Open容器
docker run ‐‐rm ‐‐net host alpine:latest ip addr
跨容器依赖
容器链接
# 将容器与另一个容器相链接
# 目标容器必须正则允许
# 链接是单向的,静态的,无传递性的网络依赖
# 通过‐‐link链接imporantData容器并给这个容器取了db这个别名
# 以后这个这个容器访问db就是访问imporantData容器
docker run ‐d ‐‐name importantWebapp ‐‐link imporantData:db dockerinaction/ch5_web
start.sh ‐db tcp:
Docker Compose
docker-compose 命令
docker‐compose up
docker‐compose ps
docker‐compose stop
docker‐compose ‐vfs rm
docker‐compose logs [服务名]
docker‐compose build [服务名]
在镜像中打包软件
从容器构建镜像
docker commit [容器名] [镜像名]
docker commit ‐m "Set CMD git" ‐a 'dfz@qq.com' cmd‐git ubuntu‐git
docker run ‐‐name cmd‐git ‐‐entrypoint "ls" ubuntu‐git
docker run ‐‐name cmd‐git1 ubuntu‐ls /
docker commit mod_ubuntu myuser/myfristrepo:mytag
docker tag myuser/myfristrepo:mytag myuser/mod_ubuntu
审查文件系统的改动
可配置的镜像属性
docker run ‐‐name rich‐image‐example ‐e ENV_EXAMPLE1=Rich busybox:latest
镜像体积和层数限制
docker history ubuntu‐git
导出和导入压缩文件系统
docker export ‐‐output mod_ubuntu.tar mod_ubuntu
tar ‐tf mod_ubuntu.tar
docker import mod_ubuntu.tar
构建自动化和高级镜像设置
指令解析
FROM ubuntu:latest
MAINTAINER "nzjdsds@qq.com"
Run apt‐get update && apt‐get install ‐y git
ENTRYPOINT ["git"]
ENV APPROOT="/app"
WORKDIR $APPROOT
EXPOSE 3333
程服务器读取资源并复制到镜像中
COPY ["来源目录","目的目录"]
VOLUME ["/var/log"]
# 不要忘记最后面的. 不加‐f指定文件名 则默认使用Dockerfile
# 在构建中,镜像的相同内容在之前配置会,则build时会使用缓存
# 增加‐‐no‐cache来不适用缓存
docker build ‐‐tag ubuntu‐git:auto .
软件分发
docker commit test/test
docker push/test
公众号回复“Docker命令”,打包下载所有命令,方便使用!
扫描下方二维码加入星球学习
加入后会邀请你进入内部微信群,内部微信群永久有效!
目前35000+人已关注加入我们