1.Namespace 命名空间
2.Control groups (cgroups)控制组
1.Namespace命名空间
1.内核版本
$uname -a
2.检测 Device Mapper
$ls -l /sys/class/misc/device-mapper
安装 Docker Engine-Community
使用 Docker 仓库进行安装在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。
设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
sudo yum install -y yum-utils device-mapper- persistent-data lvm2
设置稳定仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装 Docker Engine-Community
安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本
$ sudo yum install docker-ce docker-ce-cli containerd.io
启动 Docker
sudo systemctl start docker
通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community
sudo docker run hello-world
##2.容器的基本操作
启动容器
$docker run IMAGE [COMMAND] [ARG...]
run 在新容器中执行命令
启动交互式容器
$docker run -i -t IMAGE /bin/bash
-i --interactive=true | false 默认是 false
-t --tty=true | false 默认是 false
查看容器
$docker ps [-a] [-l]
$docker inspect [name]
自定义容器名
$docker run --name=[容器名] -i -t
重新启动停止的容器
$docker start [-i] [容器名]
删除停止的容器
$docker rm [容器名]
##3.守护式容器
#####什么是守护式容器
启动守护式容器1
$docker run -i -t /bin/bash
Command+P Command+Q 组合键退出
启动守护式容器2
$docker run -d 镜像名 [COMMAND] [ARG...]
附加到运行中的容器
$docker attach [容器名]
查看容器日志
$docker logs [-f] [-t] [--tail] 容器名
-f --follows=true | false 默认为false #跟踪变化
-t --timestamps=true | false 默认为false #加上时间戳
--tail="all" #返回日志结果的范围
查看容器内的进程
$docker top [容器名]
在运行中的容器内启动新进程
$docker exec [-d] [-i] [-t] 容器名 [COMMAND] [ARG...]
停止守护式容器
$docker stop 容器名 #发送信号给容器等待容器的停止
$docker kill 容器名 #直接将容器停止
列出镜像
$docker images [OPTIONS] [REPOSITORY]
-a, --all=fasle #显示所有镜像 默认不显示中间层的镜像
-f, --filter=[] #显示的过滤条件
--no-trunc=false #指定不使用截断式显示 唯一ID
-q, --quiet=false #只显示镜像的唯一ID
REPOSITORY #镜像所属的仓库地址
TAG #标签名称
IMAGE ID #镜像的唯一ID 默认是截取的
CREATED #创建时间
SIZE #镜像大小
查看镜像的详细信息
$docker inspect [OPTIONS] CONTAINER | IMAGE | [CONTAINER|IMAGE...]
-f, --format=""
删除镜像
$docker rmi[OPTIONS] IMAGE [IMAGES...]
-f, --force=false #强制删除
--no-prune=false #保留镜像中被打标签的父镜像
查找镜像
[Docker Hub](https://register.hub.docker.com)
$docker search [OPTIONS] TERM
--automated=false #是显示自动化构建的docker
--no-trunc=false
-s, --stars=0 #显示结果的最低星级
拉取镜像
$docker pull [OPTION] NAME [:TAG]
-a, --all-tags=false #下载所有标签的镜像
使用 --registry-mirror 选项
1.修改: /etc/default/docker
2.添加: DOCKER_OPTS="–registry-mirror=http://MIRROR-ADDR"
推送镜像
$docker push [IMAGE]
$docker commit #通过容器构建
$docker build #通过 Dockerfile文件构建
$docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
-a, --author="" #作者
-m, --message="" #提交信息
-p, --pause=true #不暂停正在提交的容器
使用Dockerfile构建镜像
$docker build [OPTIONS] PATH | URL |
--force-rm=false
--no-cache=false
--pull=false
-q, --quiet=false
--rm=true
-t, --tag=""
##Docker的 C/S模式
连接方式
$ps -ef | grep docker
$sudo status docker
使用service命令管理
$sudo service docker start
$sudo service docker stop
$sudo service docker restart
运行相关的
-D, --debug=false
-e, --exce-driver="native"
-g, --graph="/var/lib/docker"
--icc=true
-l,--log-level="info"
--label=[]
-p,--pidfile="/var/run/docker.pid"
Docker服务器连接相关
-G, --group="docker" #用户组
-H,--host=[] #主机列表
--tls=false #安全连接相关选项
--tlscacert="/home/sven/.docker/ca.pem"
--tlscert="/home/sven/.docker/cert.pem"
--tlskey="/home/sven/.docker/key.pem"
--tlsverify=false
RemoteAPI相关
--api-enable-cors=false
存储驱动相关
-s, storage-driver=""
--selinux-enabled=fasle
--storage-opt=[]
Registry相关
--insecure-registry=[]
--reigstry-mirror=[]
网络相关的配置
-b,--bridge=""
--bip=""
--fixed-cidr=""
--fixed-cidr-v6=""
--dns=[]
--dns-serach=[]
--ip=0.0.0.0
--ip-forward=true
--ip-masq=true
--iptables=true
--ipv6=false
--mtu=0