一篇学会使用docker(超详细)

本文详细介绍了Docker的基础概念,包括如何在Linux系统上一键安装,常用命令如镜像操作、容器启动、docker-compose的应用。涵盖了打包镜像、服务管理及docker-compose.yml的实战配置。
摘要由CSDN通过智能技术生成

一、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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值