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

一、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

猜你喜欢

转载自blog.csdn.net/qq_41588098/article/details/131976156