docker命令学习

一篇学会使用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

 

阅读 2655
艺说IT
16篇原创内容
 
posted @ 2023-02-10 15:44  往事已成昨天  阅读(13)  评论(0编辑  收藏  举报