Docker的常用命令

本文详细介绍了Docker的常用命令,包括启动容器(如`dockerrun`)、管理容器(如`dockerstop/start/restart`)、镜像操作(如`dockerpull`和`dockerbuild`)、网络与数据卷管理,以及使用DockerCompose进行多容器应用部署的配置和操作。
摘要由CSDN通过智能技术生成

Docker 常用的命令整理一下供大家参考

1、Docker Run

启动一个新的容器。可以通过指定镜像、容器名、端口映射等参数启动运行容器。

例子:

docker run -d -p 8080:80 --name mynginx nginx

docker run -it centos /bin/bash

这个命令会启动一个名为mynginx的容器,使用nginx镜像,并将容器内80端口映射到主机的8080端口。

参数说明:

  • -d:后台运行容器。
  • -p:指定端口映射,格式为主机端口:容器端口。
  • -it    使用交互的方法来运行起来。进入容器查看内容
  • --name:指定容器名。 # 容器的应用,tomcat01,用来区分不同的容器。
  • nginx:指定使用的镜像。

[ec2-user@172.28.1.1]# docker run -it centos /bin/bash

[ec2-user@172.28.1.1/]# ls

bin  etc   lib          lost+found  mnt  proc  run   srv  tmp  var

dev  home  lib64  media       opt  root  sbin  sys  usr

2、docker stop/start/restart/kill 

启停容器可采用下面docker命令

docker stop 容器id     

docker start 容器id     

docker restart 容器id

docker stop 容器id

docker kill 容器id

3、docker rm 

删除一个或多个容器。指定容器名或容器ID即可删除容器。

例如:docker rm mynginx

 4、docker ps

列出当前正在运行的容器的信息

docker ps      # 就是查看当前在运行的容器

docker ps -a   #表示是说查看之前运行过的容器。

docker ps -a -n=1 # 表示是说查看之前运行的容器中的一个。

docker ps -aq  # 查看所有容器的id号

5、docker images

docker images

列出本地镜像,可以查看本地已经下载的镜像 

6、docker pull

从远程镜像仓库拉取镜像。使用该命令可以从远程镜像仓库下载镜像。

docker pull nginx

例如从远程镜像仓库下载最新版本的nginx镜像。

7、docker build

在本地构建一个新的镜像

docker build -t mynginx .

例如在当前目录下的Dockerfile文件中构建一个新的镜像,并命名为mynginx。

参数说明:

  • -t:指定镜像名。
  • .:指定构建上下文路径。

 8、docker inspect

查看容器或镜像的详细信息。

docker inspect mynginx

 9、docker logs

查看容器日志

docker logs mynginx
docker logs -tf --tail 条数 id # 用来查看日志信息。

 10、docker exec/attach

docker exec -it mynginx bash

为mynginx的容器中打开一个交互式的终端。

参数说明:

  • -it:以交互式方式打开终端。
  • mynginx:举例的容器名。
docker attach 容器id

11、 docker network

管理 Docker 网络

	docker network create mynetwork

上面的docker举例创建一个名为mynetwork的网络 

12、docker volume

	docker volume create my_data_volume

 创建一个名为my_data_volume的数据卷

13、docker 删除容器

docker rm 容器id  
docker rm -f $(docker ps -aq)  # 删除所有的容器
Docker image prune -f 清楚过多的image缓存

14、docker search 

docker search 镜像名字

 

15、docker-compose

使用 Docker Compose 管理多个容器应用。Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。

Docker Compose可以做到以下几点:

①提供工具用于定义和运行多个docker容器应用;

②使用yaml文件来配置应用服务(docker-compse.yml);

③可以通过一个简单的命令docker-compse up可以按照依赖关系启动所有服务;

④可以通过一个简单的命令docker-compose down停止所有服务;

⑤当一个服务需要的时候,可以很简单地通过--scale进行扩容;

例如下面典型的三层架构场景:

 

Compose 使用的三个步骤:

1. Dockerfile 定义应用程序的环境

2. docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行

3. 执行 docker-compose up 命令来启动并运行整个应用程序

	docker -compose up -d

启动Docker Compose配置文件中定义的所有容器 

 

compose Yml文件编写

1、Compose文件是一个定义服务,网络和卷的YAML文件

2、Compose文件的默认文件名为docker-compose.yml

与docker运行一样,默认情况下,Dockerfile中指定的选项(例如,CMD,EXPOSE,VOLUME,ENV)都被遵守,不需要在docker-compose.yml中再次指定它们,可以同时使用类似Bash的$ {VARIABLE} 语法在配置值中使用环境变量

Docker Compose 的示例:

cat >docker-compose.yml<<'EOF' 

version: '3'

services:
  mysql-server:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root_pwd
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix_pwd
    networks:
      - zabbix-net
    command: ["--character-set-server=utf8", "--collation-server=utf8_bin", "--default-authentication-plugin=mysql_native_password"]

  zabbix-java-gateway:
    image: zabbix/zabbix-java-gateway:alpine-5.4-latest
    restart: always
    networks:
      - zabbix-net

  zabbix-server:
    depends_on:
      - mysql-server
    image: zabbix/zabbix-server-mysql:alpine-5.4-latest
    restart: always
    environment:
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix_pwd
      MYSQL_ROOT_PASSWORD: root_pwd
      ZBX_JAVAGATEWAY: zabbix-java-gateway
    networks:
      - zabbix-net
    ports:
      - "10051:10051"

  zabbix-web-nginx-mysql:
    depends_on:
      - zabbix-server
    image: zabbix/zabbix-web-nginx-mysql:alpine-5.4-latest
    ports:
      - "80:8080"
    restart: always
    environment:
      DB_SERVER_HOST: mysql-server
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix_pwd
      MYSQL_ROOT_PASSWORD: root_pwd
    networks:
      - zabbix-net

networks:
  zabbix-net:

EOF

使用docker-compose工具管理zabbix容器

# 创建容器并启动

.docker-compose up

# 停止并删除容器

.docker-compose down

# 创建容器并后台启动

docker-compose up -d

# 容器全部启动

docker-compose start

# 仅启动abbix-server服务对应的容器

docker-compose stop zabbix-server

# 容器全部停止

.docker-compose stop

# 仅停止zabbix-server服务对应的容器

.docker-compose stop zabbix-server

# 容器全部重启

.docker-compose restart

# 要注意端口冲突的问题,指定的services不应该有ports属性

.docker-compose scale zabbix-java-gateway=3

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI普惠行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值