一、docker介绍
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
docker 镜像

二、docker linux系统一键安装
Docker官方和国内daocloud都提供了一键脚本,使Docker的安装更加便捷。
官方一键安装方式:
| 1
 | curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
 | 
国内 daocloud一键安装命令:
| 1
 | curl -sSL https://get.daocloud.io/docker | sh
 | 
三、docker服务常用命令
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | # 停止docker服务systemctl stop docker
 # 开启docker服务
 systemctl start docker
 # 重启docker服务
 systemctl restart docker
 # 开机自启docker服务
 systemctl enable docker
 # 查看docker服务状态
 systemctl status docker
 
 | 
四、docker 常用命令
| 12
 3
 
 | # 版本docker version
 docker info
 
 | 
| 12
 3
 4
 
 | # 拉取命令docker pull 镜像名
 docker pull redis
 docker pull redis:版本号
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | # 查看镜像列表docker images
 
 # 查看正在运行的镜像
 docker ps
 docker ps -a
 
 # 运行镜像
 # 参数解析
 ## -d 挂后台运行
 ## -p 映射端口 宿主机端口:容器端口
 ## --rm 关闭容器后自动删除容器
 docker run -p 80:80 88736fe82739
 ## 多端映射
 docker run -p 80:80 nginx
 
 | 
| 12
 
 | # 运行指定版本号docker run -p 80:80 nginx:1.22.1
 
 | 
| 12
 
 | # 关闭容器后自动删除容器docker run --rm -p 80:80 nginx:1.22.1
 
 | 
| 12
 
 | # docker服务自启docker run --restart -d -p 80:80 nginx:1.22.1
 
 | 
| 12
 
 | # 进入镜像docker exec -it 7a91e6f458bb /bin/bash
 
 | 
| 12
 
 | # 停止镜像docker stop name/id
 
 | 
| 12
 
 | # 删除镜像docker rmi -f name/id
 
 | 
| 12
 3
 
 | # 镜像重命名docker tag id 名称:版本号
 如:docker tag 8d28fc6920f9 demo:0.01
 
 | 
| 12
 
 | # 宿主机传文件到容器docker cp AdventureWorksDW2019.bak id	:/tmp/AdventureWorksDW2019.bak
 
 | 
五、打包镜像命令
| 12
 3
 4
 5
 6
 7
 8
 
 | # 查看要打包的REPOSITORY(仓库名)docker images
 # 打包镜像,可以移动到其他地方使用
 docker save redis > redis.tar
 docker save --output redis.tar redis
 docker save -o redis.tar redis
 # redis:latest  REPOSITORY(仓库名):TAG
 docker save -o redis.tar redis:7.0.5
 
 | 
| 12
 3
 
 | # 将打包好的镜像拷贝到新机器上面,执行load命令解压,执行命令docker load -i redis.tar
 docker load < redis.tar
 
 | 
六、使用docker-compose.yml创建启动docker容器
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 
 | version: '2.1'services:
 mysql888:
 image: mysql:latest
 restart: always
 environment:
 - MYSQL_ROOT_PASSWORD=Root123456
 ports:
 - "13306:3306"
 volumes:
 - /tmp/mysql:/var/lib/mysql
 nginx1:
 image: nginx:1.22.1
 restart: always
 ports:
 - "10080:80"
 volumes:
 - /tmp/nginx:/usr/share/nginx/html:ro
 
 nginx2:
 image: nginx:1.22.1
 restart: always
 ports:
 - "10082:80"
 volumes:
 - /tmp/nginx:/usr/share/nginx/html:ro
 
 nginx3:
 image: nginx:1.22.1
 restart: always
 ports:
 - "10083:80"
 volumes:
 - /tmp/nginx:/usr/share/nginx/html:ro
 
 | 
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 
 | # 解释version: '2.1'
 services:
 # 容器名称
 mysql8:
 # 要拉取的镜像名称与版本
 image: mysql:latest
 # docker服务开机自启容器
 restart: always
 # 环境变量
 environment:
 - MYSQL_ROOT_PASSWORD=Root123456
 # 端口映射 宿主机:容器
 ports:
 - "13306:3306"
 # 挂载目录
 volumes:
 - /tmp/mysql:/var/lib/mysql
 # 第二个容器
 nginx 1.22.1:
 # 要拉取的镜像名称与版本
 image: nginx:1.22.1
 # docker服务开机自启容器
 restart: always
 # 端口映射 宿主机:容器
 ports:
 - "10080:80"
 # 挂载目录 :ro 表示只读 read-only system
 volumes:
 - /tmp/nginx:/usr/share/nginx/html:ro
 
 | 
七、docker-compose 命令
| 12
 3
 4
 5
 6
 
 | # create and startdocker-compose up
 # stop and remove
 docker-compose down
 # stop
 docker-compose stop
 
 |