Docker常用指令
ClearSky Drizzle Lv4

声明: 本文环境均采用ubuntu:20.04

Docker服务启停

1
2
3
4
5
systemctl start docker #启动docker
systemctl status docker #查看服务状态
systemctl stop docker #停止
systemctl restart docker #重启docker
systemctl enable docker #开机启动

Docker镜像命令

1
2
3
4
5
docker rmi docker images -q  #删除所有镜像
docker image rm <镜像名称或ID> #删除单个镜像命令
docker image rm -f <镜像名称或ID> #强制删除镜像命令
docker images -q name #查看镜像是否存在
docker build -f BackFile -t back:v1 #指定dockerfile名称

Docker容器命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
docker ps -a #查看历史容器
docker kill -s KILL name #向容器发送一个信号杀死容器
docker exec -it name /bin/bash #分配一个终端给容器,进入容器
docker export 1e560fca3906 > ubuntu.tar #导出容器 1e560fca3906 快照到本地文件 ubuntu.tar。
docker stop name #停止容器
docker rm name #删除容器
docker rm -f 1e560fca3906 #删除容器
docker rm docker ps -aq #删除所有容器
docker inspect name #查看容器信息c
docker stop $(docker ps -a -q) #停止所有容器
docker rm $(docker ps -a -q) #删除所有容器
#停止并删除所有容器
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
docker exec -it myMysql mysql -u root -p123456 #进入mysql控制台
docker update --restart=always <容器名称> #容器自启动
docker inspect <容器名>| grep RestartPolicy #验证是否生效

Docker容器的数据卷

1
2
3
4
5
docker run ....-v 宿主机目录(文件):容器内目录(文件)...
#列
docker run -it --name=c1 -v /root/data:/root/data_container centos:7
docker volume ls #查看数据卷
docker inspect name #查看数据卷信息

Docker复制主机文件命令

1
2
docker cp <host_path> <container_name_or_id>:<container_path>
docker cp /home/user/data/. my-container:/app/data/

Docker端口映射

1
2
docker run -it -p [宿主机端口]:[主机端口] --name [名称] [镜像名称]
docker run --name myMysql -p 23306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

MYSQL创建一个容器

1
2
3
4
5
6
7
8
9
10
docker run -id \
> -p 3307:3306 \
> --name=c_mysql \
> -v $PWD/conf:/etc/mysql/conf.d \
> -v $PWD/logs:/logs \
> -v $PWD/data:/var/lib/mysql \
> -e MYSQL_ROOT_PASSWORD=123456 \
> mysql:latest
# 指定mysql容器数据库字符集
docker run --name myMysql -p 23306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=health -e MYSQL_CHARSET=utf8 -d mysql:5.7

DockerFile

dockerfile常用指令

  • 创建镜像指令
1
2
docker build -t myubuntu:01 .
docker build -t 镜像名:版本号 DockerFile所在的文件目录
  • 编写Dockerfile文件
1
2
3
4
5
FROM centos  # 指定镜像来源
WORKDIR /app # 指定后续指令工作目录
COPY src/ /app # 将宿主机文件复制到容器中
RUN echo 321 >> 1.txt # 在构建容器过程中执行命令
CMD tail -f 1.txt # 指定创建容器时的默认命令

Docker构建镜像命令

1
docker build -t [name] . #dockerfile文件位置

Docker-compose配置文件

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
# 代表docker-compose项目版本号
version: "3.8"
services:
tomcat:
container_name: tomcat00 #代表给容器指定一个名称
image: tomcat:latest
ports:
- 8080:8080
tomcat01:
image: tomcat:latest
ports:
- 8081:8081
redis:
image: redis:5.0
ports:
- "6380:6379"
mysql:
image: mysql:latest
ports:
- "3307:3306"
environment: #代表当前容器启动环境
- "MYSQL_ROOT_PASSWORD=12345678"
volumes: #代表当前容器和宿主机指定数据卷
- /root/mysqldata1:/var/lib/mysql
volumes:
mysqlData: #声明别名数据卷

  • 启动docker-compose
1
2
3
4
5
docker-compose up #指定这个命令必须在dokcer-compose.yml文件配值文件目录
docker-compose down #清除缓存
docker-compose down --rmi all #移除所有镜像
docker-compose build --no-cache name
docker-compose up --force-recreate --build #强制重新创建所有容器

DockerFile和Docker-compose区别

  • Dockerfile: 用于定义如何构建单个 Docker 镜像,包括基础镜像、添加文件、运行命令、设置环境变量等。
  • docker-compose: 用于定义和管理多个相关联的 Docker 容器,以创建一个完整的容器化应用程序。通过一个 YAML 文件配置多个容器、网络、卷等,简化了容器组合和协调的过程。

Docker部署H2数据库

1
2
3
4
5
#拉取镜像
docker pull oscarfonts/h2
#创建容器
docker run -d -p 8082:8082 -p 9092:9092 --name h2-database -e H2_OPTIONS='-ifNotExists' oscarfonts/h2
#H2_OPTIONS: 这是一个环境变量的名称,它被H2数据库镜像用来识别启动选项。'-ifNotExists': 这是H2数据库的启动选项,告诉H2在启动时检查数据库文件是否存在,如果不存在,则创建一个新的数据库。

Docker创建Redis容器并指定用户名密码

1
docker run --name myRedis -p 6379:6379 -d redis:alpine --requirepass your_password
 Comments
Comment plugin failed to load
Loading comment plugin
Powered by Hexo & Theme Keep
This site is deployed on
Unique Visitor Page View