docker
架构图
docker 主要特性
- 文件、资源、网络隔离
- 变更管理、日志管理
- 写时复制
docker安装
这里使用的是centos7.6.x的服务器
- 删除旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 安装依赖
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
sudo yum install docker-ce docker-ce-cli containerd.io
- 启动服务并启动一个示例容器
# 启动服务
sudo systemctl start docker
# 来一个Hello World吧
sudo docker run hello-world
- 查询当前运行容器
# 当前运行
docker ps
# 所有容器
docker ps -a
- 升级&删除
# 更新所有
yum -y update
# 更新指定
yum-y update docker-ce docker-ce-cli containerd.io
# 删除
sudo yum remove docker-ce
# 删除系统文件
sudo rm -rf /var/lib/docker
Docker-compose集合命令
用于批量管理容器
- 下载docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 给予执行权限
sudo chmod +x /usr/local/bin/docker-compose
- 测试命令
docker-compose --version
docker-compose version 1.23.2, build 1110ad01
- 修改docker-compose的配置文件
vi docker-compost.yml
文件配置示例:
version: '3'
services:
mysql1: # 容器名称
image: mysql
enviroment:
- MYSQL_ROOT_PASSWORD=123456
ports:
- 28002:3306 # 映射端口,从docker内部的服务端口3306映射到宿主机的28002
mysql2:
image: mysql
enviroment:
- MYSQL_ROOT_PASSWORD=123456
ports:
- 28003:3306
- 根据配置文件批量运行容器
docker-compose up -d
# 批量停止
docker-compose stop
# 批量删除
docker-compose rm
docker-hub
- 登录
docker login
- 推送一个镜像
# 查询所有本地镜像
docker image
# 查询所有本地容器
docker ps
# 制作一个镜像
docker commit [容器ID] [用户名]/[在远程仓库的名称]:[tag]
docker commit edsfdf1234 zdj/msyql:1.0
# 查询镜像名称
docker image
# 推送一个镜像
docker push [镜像名称]
docker push zdj/msyql
- 拉取一个镜像
docker pull zdj/msyql