删除旧 docker 以及 依赖包
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine docker-ce
安装gcc环境
yum -y install gcc
yum -y install gcc-c++
安装yum工具
yum install -y yum-utils device-mapper-persistent-data lvm2 –skip-broken
设置stable镜像仓库
yum-config-manager –add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sed -i ‘s/download.docker.com/mirrors.aliyun.com/docker-ce/g’ /etc/yum.repos.d/docker-ce.repo
更新yum包软件索引
yum makecache fast
安装docker-ce
yum -y install docker-ce docker-ce-cli containerd.io
配置阿里云镜像加速
mkdir -p /etc/docker/
tee /etc/docker/daemon.json <<-‘EOF’
{“registry-mirrors”: [“https://qlmy5iw9.mirror.aliyuncs.com”]
}
EOF
systemctl daemon-reload
systemctl restart docker
启动docker服务
systemctl start docker
查看docker版本
docker version
测试启动一个容器
本地不存在是会从远程仓库中下载,根据配置的镜像下载
docker run hello-world
该阿里云镜像输出:hello from Docker!
docker服务相关命令
systemctl start docker // 启动服务
systemctl status docker // 查看服务状态
systemctl restart docker // 重启
systemctl stop docker // 停止
systemctl restart docker // 重启
systemctl enable docker // 设置docker开机自启动
systemctl disable docker // 关闭docker开机自启动
systemctl daemon-reload // 重载系统服务
systemctl list-unit-files –type service // 查看全部服务命令
docker相关命令
环境信息
docker version 版本信息
docker info 详细信息
容器生命周期
docker run name[:tag] 创建并运行容器【–rm 删除原容器,-d后台运行】
docker images 拉取的镜像
docker create–help 查看创建容器帮助
docker create -it –name nginx nginx:1.14 创建容器
docker ps -a 查看所有容器,没有 -a参数查看运行中容器
docker start nginx 启动容器
docker stop id 根据容器启动id停止容器,支持最左匹配,例如:a213,只需:a
docker kill id 强制停止容器
docker pause id 停止容器进程,但容器主进程还在
docker unpause id 恢复被pause的容器进程
容器运维
docker inspect id 查看容器详细信息
docker exec -it id bash 根据容器id进入容器内部命令
docker top id 查看容器进程
docker stats id 查看容器使用资源情况
docker rename id name 根据容器id修改容器名称
容器rootfs
docker cp filename id:/ 复制文件到容器内:文件名称 容器id:容器目录
docker diff id 容器修改比较
docker commit -m “test” id [nginx-test:1.14] 根据容器id提交容器到镜像仓库:[镜像名称:标签]
docker rm id 删除容器images
docker image prune 批量删除名称为null的容器
docker container prune 批量删除不在运行中的容器
镜像仓库
docker login xxx.com 登录到镜像仓库
docker search name 查看仓库镜像
docker tag name:tag xxx.com/name:tag 把某个镜像打包到镜像仓库
docker push id 推送打包的镜像到镜像中心
docker pull name[:tag] 拉取镜像中心的镜像到本地
本地镜像管理
docker build -t name:tag ./ 创建镜像: 名称:标签 目录
docker images 查看本地镜像
docker rmi id 删除镜像
docker save name:tag -o test.tar 把镜像保存为tar包
docker load < test.tar 加载镜像包
容器资源
docker volume -h 查看网络命令帮助
docker network -h 查看网络命令帮助
系统日志
docker logs -f id 查看镜像日志
docker events –since=”xxx” 查看docker做了哪些操作
docker history name:tag
docker file 编写
mkdir imooc-dockerfile-std
vim DockerFile 如果文件名不同需指定文件名路径
文件内容:
from nginx:1.14 #基础镜像
maintainer 123456@qq.com #dockerfile维护者
label imooc #注释
arg port 80 #构建时环境变量端口
env poet 80 #运行时环境变量端口
copy test.txt / #拷贝
add test.tar / #拷贝并解压
workdir / #指定工作目录
run ls #在构建的时候执行的命令
cmd [“bash”,”-c”, “echo 111”] #容器启动时执行的命令,后面的cmd会把前面的cmd覆盖,只有一个cmd能运行
entrypoint [“bash”,”-c”,”echo 222″] #容器启动时执行的命令 不会被覆盖
# cmd 的值作为 entrypoint 的参数
cmd [“111”]
entrypoint [“echo”] #最终为echo 111
expose ${port} #暴露端口 用处: 1、开放人员方便查看 2、-P动态映射端口
volume [“/data”] #卷挂载
run yum -y install curl # 安装curl库
healthcheck –interval=5s –timeout=3s cmd curl -fs http:localhost/ || exit 1 #健康检查
docker compose
yum -y install docker-compose 安装docker-compose
常用命令 【需在对应项目下执行】
docker-compose -h 查看帮助命令
docker-compose build 构建镜像
docker-compose up -d 后台运行
docker-compose ps 查看端口
docker-compose down 停止镜像
docker-compose restart 重启
docker-compose stop 停止
docker-compose start 启动
vim docker-compose.yaml 创建yaml文件
yaml文件内容:
version:”3″
services:
nginx1:
image:nginx:1.14
container_name:nginx1
ports:
– 8081:80
nginx2:
depends_on:
– nginx1
build:
context: .
container_name: nginx2
ports:
– 8082:80
vim DockerFile
from nginx:1.14