一、docker介绍

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

docker 镜像

https://hub.docker.com/
二、docker linux系统一键安装
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
三、docker服务常用命令
# 停止docker服务
systemctl stop docker
# 开启docker服务
systemctl start docker
# 重启docker服务
systemctl restart docker
# 开机自启docker服务
systemctl enable docker
# 查看docker服务状态
systemctl status docker
四、docker 常用命令
# 版本
docker version
docker info

# 拉取命令
docker pull 镜像名 
docker pull redis
docker pull redis:版本号

# 查看镜像列表
docker images

# 查看正在运行的镜像
docker ps
docker ps -a

# 运行镜像
# 参数解析
## -d 挂后台运行
## -p 映射端口 宿主机端口:容器端口
## --rm 关闭容器后自动删除容器
docker run -p 80:80 88736fe82739
## 多端映射
docker run -p 80:80 nginx

# 运行指定版本号
docker run -p 80:80 nginx:1.22.1

# 关闭容器后自动删除容器
docker run --rm -p 80:80 nginx:1.22.1 

# docker服务自启
docker run --restart -d -p 80:80 nginx:1.22.1 

# 进入镜像
docker exec -it 7a91e6f458bb /bin/bash

# 停止镜像
docker stop name/id

# 删除镜像
docker rmi -f name/id

# 镜像重命名
docker tag id 名称:版本号
如:docker tag 8d28fc6920f9 demo:0.01

# 宿主机传文件到容器
docker cp AdventureWorksDW2019.bak id	:/tmp/AdventureWorksDW2019.bak
五、打包镜像命令
# 查看要打包的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

 # 将打包好的镜像拷贝到新机器上面,执行load命令解压,执行命令
docker load -i redis.tar     
docker load < redis.tar 
六、使用docker-compose.yml创建启动docker容器
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
# 解释
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 命令
# create and start
docker-compose up
# stop and remove
docker-compose down
# stop
docker-compose stop
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐