Docker的常用命令

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

 

相关推荐

  1. [Docker] 命令

    2024-02-22 23:28:04       42 阅读
  2. docker 命令

    2024-02-22 23:28:04       53 阅读
  3. docker 命令

    2024-02-22 23:28:04       51 阅读
  4. Docker 命令

    2024-02-22 23:28:04       50 阅读
  5. docker 命令

    2024-02-22 23:28:04       53 阅读
  6. docker 命令

    2024-02-22 23:28:04       40 阅读
  7. Docker命令

    2024-02-22 23:28:04       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-22 23:28:04       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-22 23:28:04       97 阅读
  3. 在Django里面运行非项目文件

    2024-02-22 23:28:04       78 阅读
  4. Python语言-面向对象

    2024-02-22 23:28:04       88 阅读

热门阅读

  1. linux命令--pidof

    2024-02-22 23:28:04       47 阅读
  2. springboot接收base64文件并上传

    2024-02-22 23:28:04       39 阅读
  3. 【达梦数据库】查看pesg回滚段信息的视图和SQL

    2024-02-22 23:28:04       52 阅读
  4. 数学术语之源——插值(interpolation)

    2024-02-22 23:28:04       53 阅读
  5. C和C++编译器标识符

    2024-02-22 23:28:04       56 阅读
  6. MQL语言实现单元测试

    2024-02-22 23:28:04       43 阅读
  7. 机器学习系列-机器学习范式

    2024-02-22 23:28:04       41 阅读
  8. RK3568 speex speexdsp降噪算法移植

    2024-02-22 23:28:04       59 阅读
  9. windows 10 和 11 的3个杀招软件

    2024-02-22 23:28:04       63 阅读
  10. Luogu P6175 无向图的最小环问题 题解 Floyd

    2024-02-22 23:28:04       57 阅读
  11. 带你了解软件系统架构的演变

    2024-02-22 23:28:04       56 阅读
  12. jQuery的应用(二)

    2024-02-22 23:28:04       48 阅读