Docker容器的常用命令

479 阅读2分钟

安装容器

# 搜索可用镜像
> docker search <image>

# 拉取镜像
> docker pull <image>

# 运行容器
> docker run -d --name <name> -p 81:80 -e ENV=xxx -v /home/data:/opt/data --link source[:alias] --restart=always <image>

参数说明:
-d 后台运行
--name 容器名称
-p 81:80 宿主机端口(81)映射到容器端口(80)
-e ENV=xxx 添加环境变量
-v /home/data:/opt/data 宿主机地址(/home/data)映射到容器地址(/opt/data)
--link source[:alias] 连接容器(source)并为其设置别名(alias),别名可省略
--restart=always 自启动

常用命令

# 搜索镜像
> docker search [options] <image>

# 拉取镜像
> docker pull <image>

# 查看已下载镜像
> docker images

# 删除镜像
> docker image rm <image>

# 查看正在运行的容器
> docker ps

# 查看所有的容器
> docker ps -a 

# 查看元数据
> docker inspect <image/container>

# 查看容器日志
> docker logs -f <容器名 or ID>

# 删除容器
> docker rm <容器名 or ID>

# 删除所有容器
> docker rm $(docker ps -a -q)

# 启动
> docker start <容器名 or ID>
# 重启
> docker restart <容器名 or ID>
# 停止
> docker stop <容器名 or ID>
# 杀死
> docker kill <容器名 or ID>

# 进入容器
> docker exec -it <容器名 or ID> /bin/bash

修正容器时间

# 复制宿主机上的时间
> docker cp /usr/share/zoneinfo/Asia/Shanghai <容器名 or ID>:/usr/share/zoneinfo/Asia

# 进入容器,执行以下操作
> ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
> echo "Asia/Shanghai" > /etc/timezone

# 查看时间
> date

常用容器

redis

# 拉取镜像
> docker pull redis

# 启动容器
> docker run -d --name redis -p 6379:6379 --restart=always redis --requirepass 123456

mysql

# 拉取镜像
> docker pull mysql

# 启动容器
> docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /home/docker/mysql/conf:/etc/mysql/conf.d --restart=always mysql

mongo

# 拉取镜像
> docker pull mongo

# 启动容器
> docker run -d --name mongo -p 27017:27017 --restart=always mongo --auth

# 登录容器
> docker exec -it mongo mongosh admin

# 创建用户
> db.createUser({user:"root",pwd:"123456",roles:[{role:"root",db:"admin"}]})

rabbitmq

# 拉取镜像
> docker pull rabbitmq:management

# 启动容器
> docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=123456 --restart=always rabbitmq:management

nacos + mysql

# 官网下载 nacos-mysql.sql
> https://github.com/alibaba/nacos/blob/master/config/src/main/resources/META-INF/

# 拉取镜像
> docker pull nacos/nacos-server

# 创建目录
> mkdir -p /home/docker/nacos

# 添加配置文件
> vi /home/docker/nacos/application.properties
server.contextPath=/nacos
server.servlet.contextPath=/nacos
server.port=8848
spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/itcfg_nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

nacos.cmdb.dumpTaskInterval=3600
nacos.cmdb.eventTaskInterval=10
nacos.cmdb.labelTaskInterval=300
nacos.cmdb.loadDataAtStart=false

management.metrics.export.elastic.enabled=false
management.metrics.export.influx.enabled=false
server.tomcat.accesslog.enabled=true
server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
nacos.security.ignore.urls=/,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/login,/v1/console/health/**,/v1/cs/**,/v1/ns/**,/v1/cmdb/**,/actuator/**,/v1/console/server/**
nacos.naming.distro.taskDispatchThreadCount=1
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.initDataRatio=0.9
nacos.naming.distro.syncRetryDelay=5000
nacos.naming.data.warmup=true
nacos.naming.expireInstance=true
# 启动容器
> docker run -d --name nacos -p 8848:8848 -p 9848:9848 -p 9849:9849 -e MODE=standalone -v /home/docker/nacos/application.properties:/home/nacos/conf/application.properties --restart=always nacos/nacos-server