1 docker基础
1.0 精简版命令
查看容器的id:
docker ps|grep <service_name>
查看容器的统计信息(包含cpu和内存使用情况等):
docker stats <container_id>
查看容器的日志信息:
docker logs <container-id>
打包镜像为tar格式文件:
docker save -o xxx.tar [Docker Registry地址]<仓库名>:<标签>
加载镜像:
docker load -i gnocchi-api.tar
删除镜像:
docker rmi <image_id>
删除容器:
docker rm <container_id>
查看镜像列表:
docker images
查看某个组件的镜像,以ceilometer为例
docker images|grep ceilometer
运行镜像:
docker run -it [Docker Registry地址]<仓库名>:<标签> /bin/bash
以root用户运行镜像:
docker run -it -uroot [Docker Registry地址]<仓库名>:<标签>
查看镜像分层信息:
docker history <image_id>
查看容器大小, 将container的文件系统进行打包:
docker export <container_id> -o xxx.tar
拷贝文件到容器中:
docker cp <file_path> <container_id>:<path>
提交容器为新的镜像:
docker commit <container_id> [Docker Registry地址]<仓库名>:<标签>
给镜像重新打标签:
docker tag [Docker Registry地址]<仓库名>:<标签> [Docker Registry地址]<仓库名>:<新标签>
1.1 安装docker
centos环境下:
yum install docker
systemctl enable docker
systemctl start docker
systemctl status docker
另一种安装方式:
配置国内源
sudo yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
安装Docker CE
sudo yum makecache fast
sudo yum install docker-ce
启动Docker CE
sudo systemctl enable docker
sudo systemctl start docker
建立docker用户组
原因:docker命令用socker和Docker通讯,将需要使用的docker用户加入docker用户组
sudo groupadd docker
sudo usermod -aG docker $USER
解释:
groupadd :添加用户组
usermod 命令:修改用户,用户加目录
usermod -aG:追加用户组
$USER : 当前用户
镜像加速:
添加内核参数
sudo tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
重新加载
sudo sysctl -p
解释:
/etc/sysctl.conf : 允许改变正在运行中的Linux接口的文件
sysctl -p <filename>
p:指定路径,再如sysctl配置文件,如果没有指定路径,则加载/etc/sysctl.conf
镜像加速器:
/etc/docker/daemon.json 中写入内容
{
"registry-mirrors": [
"https://registry.docker-cn.com"
]
}
重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker
1.2 使用docker镜像
Docker运行容器前需要在本地存在对应镜像,如果本地不存在,会从镜像仓库下载
1.3 管理Docker镜像
1) 列出镜像:
docker images
等同于: docker image ls
镜像ID:是镜像的唯一标识,一个镜像也可对应多个标签
镜像体积:
Docker Hub显示的是压缩后的体积
docker images:显示镜像下载到本地展开后的大小
列出部分镜像:
docker images ubuntu
列出指定名称和标签的镜像
docker images ubuntu:14.04
中间层镜像:
默认只显示顶层镜像,希望包含中间层镜像,需要-a
docker images -a
是其他镜像所依赖的镜像。
2) 获取镜像:
docker pull [选项] [Docker Registry地址]<仓库名>:<标签>
解释:
Docker Registry地址: <域名/IP>[:端口号],默认时Docker Hub
仓库名:两段式名称,<用户名>/<软件名>,不给出用户名,
默认为library,也就是官方镜像
示例:
docker pull ubuntu:14.04
4) push镜像
docker pull [选项] [Docker Registry地址]<仓库名>:<标签>
示例:
docker push docker.io/chao/mongo:3.4.9
5) 以镜像为基础启动一个容器来运行。
docker run [option] <仓库>:<标签> 命令
示例: 以bash进行交互式操作
docker run -it -uroot --rm ubuntu:14.04 bash
解释:
docker run [option] <仓库>:<标签> 命令
docker run:运行容器的命令
-it: i交互式操作,t:终端
-uroot: 以root用户身份运行容器
--rm:容器推出后随之将其删除。默认退出容器不会立即删除
ubuntu:14.04 : 是指用ubuntu:14.04镜像为基础来期待哦改容器
bash : 放在镜像名后的是命令,希望交互式Shell&#x