一、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服务常用命令
1 2 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 常用命令
1 2 3
| # 版本 docker version docker info
|
1 2 3 4
| # 拉取命令 docker pull 镜像名 docker pull redis docker pull redis:版本号
|
1 2 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
|
1 2
| # 运行指定版本号 docker run -p 80:80 nginx:1.22.1
|
1 2
| # 关闭容器后自动删除容器 docker run --rm -p 80:80 nginx:1.22.1
|
1 2
| # docker服务自启 docker run --restart -d -p 80:80 nginx:1.22.1
|
1 2
| # 进入镜像 docker exec -it 7a91e6f458bb /bin/bash
|
1 2
| # 停止镜像 docker stop name/id
|
1 2
| # 删除镜像 docker rmi -f name/id
|
1 2 3
| # 镜像重命名 docker tag id 名称:版本号 如:docker tag 8d28fc6920f9 demo:0.01
|
1 2
| # 宿主机传文件到容器 docker cp AdventureWorksDW2019.bak id :/tmp/AdventureWorksDW2019.bak
|
五、打包镜像命令
1 2 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
|
1 2 3
| # 将打包好的镜像拷贝到新机器上面,执行load命令解压,执行命令 docker load -i redis.tar docker load < redis.tar
|
六、使用docker-compose.yml创建启动docker容器
1 2 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
|
1 2 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 命令
1 2 3 4 5 6
| # create and start docker-compose up # stop and remove docker-compose down # stop docker-compose stop
|