Docker笔记

Docker笔记

heiu

一、docker介绍

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

docker 镜像

img

二、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
  • 标题: Docker笔记
  • 作者: heiu
  • 创建于 : 2023-01-26 13:56:58
  • 更新于 : 2024-05-30 22:34:00
  • 链接: https://blog.heiu.top/posts/5c266b64.html
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论