安装
安装是基于centos7环境的
其他环境的安装也可以看官方文档
centos安装文档
https://docs.docker.com/engine/install/centos/
# 如果安装过Docker 需要卸载,如果没有可以跳过
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 安装yum-utils工具包
yum install -y yum-utils
# 设置yum存储库 即从该地址下载Docker
#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 上面是官网地址 由于墙,比较慢 换为aliyun
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#安装
yum install docker-ce docker-ce-cli containerd.io -y
#启动docker
systemctl start docker
#开机自启docker 可选命令--now 立即启动docker --now 相当于 systemctl start docker
systemctl enable docker --now
基本操作
配置镜像加速
配置Docker阿里云镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://z3j5f3e3.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
DockerHub
DockerHub是Docker的公共镜像仓库,基本上各大软件的镜像都在这里可以找到
https://hub.docker.com/search?type=image
找到镜像后,有对应镜像的版本和拉取/启动命令
以nginx为例
常用命令
镜像
# docker帮助命令
docker --help
# docker 搜索镜像 相当于在docker hub上搜索
docker search
# docker 拉取镜像 不写版本号默认latest
docker pull 镜像名[:版本号]
example:
docker pull nginx = docker pull nginx:latest
# docker 查看镜像
docker images
# docker 删除镜像 不写版本号默认latest
docker rmi 镜像名[:版本号]
容器
# docker 启动容器 -d 后台运行 --name 给容器起个名字(容器的名字不可重复) -p端口映射 --restart=always docker重启后继续启动该容器 -v 数据挂载
docker run -d --name=[容器名] -p 主机端口:容器端口 -v [主机目录]:[容器目录] --restart=always [镜像id/名字]
# docker 停止容器
docker stop [容器id/名字]
# docker 重新启动容器
docker start [容器id/名字]
# docker 删除容器
docker rm [容器id/名字]
# docker 更新容器启动命令 端口无法修改
docker update [容器id] --restart=always
# docker 查看容器 -a 查询所有容器 不加-a 默认查询运行状态的容器
docker ps
进入容器
docker exec -it [容器id] /bin/bash
将修改后的容器提交为镜像
# docker 提交镜像 -a 作者 -m 提交信息 要打包镜像的容器id 自定义的镜像名字:版本
docker commit -a [作者] -m [提交信息] [容器id] [自定义的镜像名字:版本]
example:
docker commit -a zhangyao -m "首页变化" 3b009d818c40 mynginx:v1.0
推送镜像到dockerHub
dockerhub需要先注册
并在dockerhub上建立仓库
输入仓库名
# 此处以推动到dockerHub为例,其他私有镜像库大同小异
# 登录dockerHub
docker login
# 输入用户名/密码
# docker 打标签 打标签的意义在于将本地的镜像新打一个标签使其与你新建立的存储库的路径一致
docker tag local-image:tagname new-repo:tagname
example:
docker tag mynginx:v1.0 zy963613606/nginx:v1.0
# docker 推送
docker push new-repo:tagname
example:
docker push zy963613606/nginx:v1.0
# docker 退出登录
docker logout
容器相关操作命令
# 查看docker 日志
docker logs [容器id]
# docker 容器与宿主机复制文件 两个参数可以互换位置 第一个参数是from 第二个参数是to
docker cp [容器id]:[文件路径] [宿主机路径]