跳至主要內容

Docker容器启动

soulballad环境配置DockerDocker约 2657 字大约 9 分钟

Docker容器启动

1. network

# --driver bridge 表示使用桥接模式
# --subnet 192.168.1.0/16 表示子网ip 可以分配 192.168.1.2 到 192.168.255.255
# --gateway 192.168.1.0 表示网关
# default_network表示网络名
docker network create default_network
docker network create --subnet=172.18.222.0/24 mynetwork
docker network create --driver bridge default_network
docker network create --driver bridge --subnet 172.18.1.0/16 --gateway 172.18.1.0 btvwlc
docker network create --driver bridge --subnet 172.20.1.0/16 --gateway 172.20.1.0 mkdtbs

# 不删除容器更新网卡
###解除容器绑定的网络 网络名词mynetwork 容器名称 lnmp
[root@lnmp tp6cms]# docker network disconnect mynetwork lnmp
##删除原先的网络
[root@lnmp tp6cms]# docker network rm mynetwork
##重新创建容器网络
[root@lnmp tp6cms]# docker network create --subnet=192.168.222.0/24 mynetwork
##为容器重新指定网络
[root@lnmp tp6cms]# docker network connect mynetwork lnmp 
##重新启动容器
[root@lnmp tp6cms]# docker container restart lnmp


# docker-compose 指定网卡
networks:
 demo:
  external: true

networks:
  default:
    external:
      name: my-pre-existing-network

查看网卡情况

docker network inspect btvwlc
{
    "869e5fdf3431377587f8b854df582f8e1e5300255fb0439267c4d32764304e40": {
        "Name": "redis",
        "EndpointID": "b0a817ed6d9100f250b95ac1f6a7b1673ff0f355389ca44a54b42db65f04293f",
        "MacAddress": "02:42:ac:12:00:04",
        "IPv4Address": "172.18.0.4/16",
        "IPv6Address": ""
    },
    "d783017814e23ed48ac5e3416dd00779c030245d4b256950e93dd8c0d60e7d5c": {
        "Name": "mysql",
        "EndpointID": "407996cd18ce130aaa83acbc8f75da0a372bc1966e3a03c3244cc98ce4e4c0b5",
        "MacAddress": "02:42:ac:12:00:02",
        "IPv4Address": "172.18.0.2/16",
        "IPv6Address": ""
    },
    "e3ef0b4b2da656b933ac1cb14e24fa0e168c23ee7e6621e352100fa33c963c61": {
        "Name": "minio",
        "EndpointID": "b6873cf07a35221a365d668288a45acc5644bf5fc2d79a3576138a00c1633545",
        "MacAddress": "02:42:ac:12:00:03",
        "IPv4Address": "172.18.0.3/16",
        "IPv6Address": ""
    }
}

2. mysql

win

docker run --privileged=true --restart=always --network btvwlc -p 31306:3306 --name mysql -v D:/Config/docker/mysql/logs:/var/log/mysql -v D:/Config/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -d mysql

# docker run --name mysql --network btvwlc -p 3306:3306 -v E:/Develop/Docker/data/mysql:/var/lib/mysql -v E:/Develop/Docker/data/mysql/conf:/etc/mysql/ -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -d mysql

centos

docker run --privileged=true --restart=always --network btvwlc -p 31306:3306 --name mysql -v /data/docker/mysql/logs:/var/log/mysql -v /data/docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -d mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

Some pointers may be invalid and cause the dump to abort.

cp -r data data2
ll data2
rm -rf binlog.*
rm -rf binlog.index 
rm -rf ib_16384_*
rm -rf ib_logfile*

3. redis

Docker启动redis命令open in new window

win

docker run -p 31379:6379 --restart=always --network btvwlc --privileged=true --name redis -m 200M --memory-swap=300M -c 384 -v D:/Config/docker/redis/redis.conf:/etc/redis.conf -v D:/Config/docker/redis/data:/data -d redis --appendonly yes

# docker run -p 6379:6379 --name redis --network btvwlc -v E:/Develop/Docker/data/redis:/data -d redis redis-server --appendonly yes --requirepass "123456"

centos

docker run -p 31379:6379 --restart=always --network btvwlc --privileged=true --name redis -m 200M --memory-swap=300M -c 384 -v /data/docker/redis/redis.conf:/etc/redis.conf -v /data/docker/redis/data:/data -d redis --appendonly yes

4. docker update

# always 容器退出时总是重启
docker run --restart=always [容器名]

# unless-stopped 容器退出时总是重启,但不考虑Docker守护进程启动时就已经停止的容器
docker run --restart=unless-stopped [容器名]

# 如果容器启动时没有设置–restart参数,则通过下面命令进行更新:
docker update --restart=always [容器名]

# 更新容器资源限制 内存200M,总内存300M,cpu份额512(默认1024,资源不足时生效)
docker update -m 200M --memory-swap=300M -c 512 [容器名]

# save
docker save -o nginx.tar nginx:latest   
或   
docker save > nginx.tar nginx:latest

# load
docker load -i nginx.tar  
或  
docker load < nginx.tar

# 容器打包成镜像
# docker commit [-m="提交的描述信息"] [-a="创建者"] 容器名称|容器ID 生成的镜像名[:标签名]
docker commit -m "nexus changed" nexus nexus:1.0

解决VMware虚拟机挂起后无法连接docker容器_喜羊羊sk的博客-CSDN博客open in new window
Docker:虚拟机挂起后,再启动docker容器连接失败_51CTO博客_docker 容器启动失败open in new window

5. kafka

Docker部署Kafkaopen in new window

win

# 部署zookeeper
docker run --name zookeeper --network btvwlc -p 31181:2181 -m 150M --memory-swap=200M -c 384 -e TZ=Asia/Shanghai -d wurstmeister/zookeeper

# 部署kafka
# -e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
# -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181/kafka 配置zookeeper管理kafka的路径zookeeper:2181/kafka
# -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092 把kafka的地址端口注册给zookeeper
# -e KAFKA_LISTENERS=PLAINTEXT://kafka:9092 配置kafka的监听端口
docker run --name kafka --network btvwlc -p 31192:9092 -m 200M --memory-swap=300M -c  512 -e TZ=Asia/Shanghai -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_LISTENERS=PLAINTEXT://localhost:9092 -d wurstmeister/kafka

centos

# https://blog.csdn.net/u014796929/article/details/123508090
docker run --name zookeeper --network btvwlc --restart=always -p 31181:2181 --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 -m 150M --memory-swap=200M -c 384 -e TZ=Asia/Shanghai -v /etc/localtime:/etc/localtime -d zookeeper


## 参数说明:
# -e KAFKA_BROKER_ID=0  在kafka集群中,每个kafka都有一个BROKER_ID来区分自己 
# -e KAFKA_ZOOKEEPER_CONNECT=172.21.10.10:2181/kafka 配置zookeeper管理kafka的路径172.21.10.10:2181/kafka 
# -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.21.10.10:9092  把kafka的地址端口注册给zookeeper,如果是远程访问要改成外网IP,类如Java程序访问出现无法连接。 
# -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口 
# -v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间

docker run --name kafka --network btvwlc -p 31192:9092 -m 200M --memory-swap=300M -c 512 --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.18.11.3:31181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.18.11.3:31192 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime -d wurstmeister/kafka

6. postgis

docker 部署带postgis扩展的postgresqlopen in new window

win

docker run -d --name postgis --restart=always --network btvwlc -m 200M --memory-swap=300M -c 512 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD='hxzj@123' -e ALLOW_IP_RANGE=0.0.0.0/0 -e TZ=Asia/Shanghai -v D:/Config/docker/postgis/data:/var/lib/postgresql -v D:/Config/docker/postgis/tmp:/tmp/tmp -p 31432:5432 -t postgis/postgis

centos

docker run -d --name postgis --restart=always --network btvwlc -m 200M --memory-swap=300M -c 512 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD='hxzj@123' -e ALLOW_IP_RANGE=0.0.0.0/0 -e TZ=Asia/Shanghai -v /data/docker/postgis/data:/var/lib/postgresql -v /data/docker/postgis/tmp:/tmp/tmp -p 31432:5432 -t postgis/postgis

7. clickhouse

使用Docker安装ClickHouseopen in new window

  • 创建临时容器
docker run --rm -d --name=clickhouse-server --ulimit nofile=262144:262144 -p 8123:8123 -p 9009:9009 -p 9090:9000 yandex/clickhouse-server
  • 复制临时容器内配置文件到宿主机
docker cp clickhouse-server:/etc/clickhouse-server/config.xml D:/Config/docker/clickhouse/conf/config.xml

docker cp clickhouse-server:/etc/clickhouse-server/users.xml D:/Config/docker/clickhouse/conf/users.xml
  • 停掉临时容器
docker stop clickhouse-server
  • 创建default账号密码(可到其他容器内部执行)
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
  • 执行示例如下
bash-4.4# PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
YGRaEyBU(明文密码)
ce123be51dcb0865bb5909169e69be437c0d4e258c683bdc3e7b6842ba282eba(密文)
bash-4.4#
  • 创建root账号密码
# 指定root账号密码
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "hxzj@123"; echo -n "hxzj@123" | sha256sum | tr -d '-'

bash-4.4# PASSWORD=$(base64 < /dev/urandom | head -c8); echo "hxzj@123"; echo -n "hxzj@123" | sha256sum | tr -d '-'
hxzj@123
f9d2b507d4c38045dc02061475a15cd5695b8e01ba7e5d78d484a9834c8898d2
bash-4.4#
  • 修改 /app/cloud/clickhouse/conf/users.xml
    把default账号设为只读权限,并设置密码 yandex-->users-->default-->profile 节点设为 readonly 注释掉 yandex-->users-->default-->password 节点 新增 yandex-->users-->default-->password_sha256_hex 节点,填入生成的密码
<default>
    <!-- <password></password> --> 	       
    <password_sha256_hex>
    	ce123be51dcb0865bb5909169e69be437c0d4e258c683bdc3e7b6842ba282eba
    </password_sha256_hex>
    <networks>
        <ip>::/0</ip>
    </networks>
    <profile>readonly</profile>
    <quota>default</quota>
</default>
cC6DdxFS
  • 新增root账号,填入明文密码(密文启动失败)
<root>
    <!-- <password_sha256_hex>
                f9d2b507d4c38045dc02061475a15cd5695b8e01ba7e5d78d484a9834c8898d2
            </password_sha256_hex> -->
    <password>hxzj@123</password>
    <networks>
        <ip>::/0</ip>
    </networks>
    <profile>default</profile>
    <quota>default</quota>
</root>
  • 创建容器
docker run -d --name=clickhouse-server --network btvwlc -p 31323:8123 -p 31909:9009 -p 31990:9000 --ulimit nofile=262144:262144 -m 200M --memory-swap=300M -c 512 -e TZ=Asia/Shanghai -v D:/Config/docker/clickhouse/data:/var/lib/clickhouse:rw -v D:/Config/docker/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml -v D:/Config/docker/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml -v D:/Config/docker/clickhouse/log:/var/log/clickhouse-server:rw yandex/clickhouse-server

linux

docker run -d --name=clickhouse-server --network btvwlc -p 31323:8123 -p 31909:9009 -p 31990:9000 --ulimit nofile=262144:262144 -e TZ=Asia/Shanghai -v /data/docker/clickhouse/data:/var/lib/clickhouse:rw -v /data/docker/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml -v /data/docker/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml -v /data/docker/clickhouse/log:/var/log/clickhouse-server:rw yandex/clickhouse-server

8. minio

Docker 搭建 Minio 容器 (完整详细版)open in new window

win

docker run -p 31900:9000 -p 31901:9001 --name minio --restart=always --network btvwlc -m 200M --memory-swap=300M -c 512 -e MODE=standalone -e "MINIO_ACCESS_KEY=minio" -e "MINIO_SECRET_KEY=hxzj@12345" -v D:/Config/docker/minio/data:/data -v D:/Config/docker/minio/config:/root/.minio -d quay.io/minio/minio server /data --console-address ":9001" -address ":9000"

linux

docker run -p 31900:9000 -p 31901:9001 --name minio --restart=always --network btvwlc -m 200M --memory-swap=300M -c 512 -e MODE=standalone -e "MINIO_ROOT_USER=minio" -e "MINIO_ROOT_PASSWORD=hxzj@12345" -v /data/docker/minio/data:/data -v /data/docker/minio/config:/root/.minio -d quay.io/minio/minio server /data --console-address ":9001" -address ":9000"

9. nacos

错误方式

docker run --name nacos --restart=always --network btvwlc -p 31048:8848 -p 32048:9848 -p 32049:9849 -m 400M --memory-swap=500M -c 1024 -e PREFER_HOST_MODE=ip -e MODE=standalone -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=mysql -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 -e MYSQL_SERVICE_DB_NAME=nacos -e TIME_ZONE='Asia/Shanghai' -d nacos/nacos-server

正确方式

docker run --name nacos --privileged=true --restart=always --network btvwlc -p 31048:8848 -p 32048:9848 -p 32049:9849 -e MODE=standalone -e JVM_XMS=256m -e JVM_XMX=256m -e SPRING_DATASOURCE_PLATFORM=mysql -e MYSQL_SERVICE_HOST=mysql -e MYSQL_SERVICE_PORT=3306 -e MYSQL_SERVICE_DB_NAME=nacos -e MYSQL_SERVICE_USER=root -e MYSQL_SERVICE_PASSWORD=123456 -e TIME_ZONE='Asia/Shanghai' -v /data/docker/nacos/conf/data:/home/nacos/conf/data -v /data/docker/nacos/conf/logs:/home/nacos/conf/logs -d nacos/nacos-server

10. xxljob

win

docker run --name xxljob --network btvwlc -m 200M --memory-swap=300M -c 512 -p 31880:8080 --privileged=true -e PARAMS=" --spring.datasource.url=jdbc:mysql://mysql:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 --spring.datasource.username=root --spring.datasource.password=123456" -v D:/Config/docker/xxljob/logs:/data/applogs -d xuxueli/xxl-job-admin:2.3.0

linux

docker run --name xxljob --network btvwlc -m 200M --memory-swap=300M -c 512 -p 31880:8080 --privileged=true -e PARAMS="--spring.datasource.url=jdbc:mysql://mysql:3306/xxl_job?Unicode=true&characterEncoding=UTF-8 --spring.datasource.username=root --spring.datasource.password=123456" -v /data/docker/xxljob/logs:/data/applogs -d xuxueli/xxl-job-admin:2.3.0

11. svrjob

docker run --name=svrjob --network btvwlc -m 200M --memory-swap=300M -c 512 -p 31903:9003 -e TZ=Asia/Shanghai -e PARAMS="--spring.profiles.active=prod --dubbo.registry.address=nacos://nacos:8848?username=nacos&password=nacos --dubbo.registry.check=false --spring.datasource.url=jdbc:mysql://mysql:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=root --spring.datasource.password=123456 --JAVA_TOOL_OPTIONS=-Xmx256m -Xms256m -XX:MaxMetaspaceSize=128m --SW_AGENT_NAME=svrjob " -d svrjob:0.9

12. dubbo-admin

docker run --name dubbo-admin --network btvwlc -p 31080:8080 
-m 200M --memory-swap=300M -c 512 -e PARAMS="
--admin.registry.address=nacos://nacos:8848
--admin.config-center=nacos://nacos:8848
--admin.metadata-report.address=nacos://nacos:8848
--dubbo.application.name=dubbo-admin
--dubbo.registry.address=nacos://nacos:8848
--mybatis-plus.global-config.db-config.id-type=none
--spring.datasource.driver-class-name=com.mysql.jdbc.Driver
--spring.datasource.url=jdbc:mysql://mysql:3306/dubbo-admin?characterEncoding=utf8&connectTimeout=1000&socketTimeout=10000&autoReconnect=true
--spring.datasource.username=root
--spring.datasource.password=123456
"
-d apache/dubbo-admin

13. portainer

docker run -p 20000:9000 --name portainer --network btvwlc --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /data/docker/portainer/data:/data -d portainer/portainer-ce:2.16.1

14. nexus

nexus

# 挂载准备工作 [sonatype/nexus3](https://hub.docker.com/r/sonatype/nexus3)
mkdir /data/docker/nexus/data && chown -R 200 /data/docker/nexus/data
mkdir /data/docker/nexus/vdata && chown -R 200 /data/docker/nexus/vdata

docker run -p 21000:8081 --name nexus --network btvwlc --restart=always -e NEXUS_CONTEXT=nexus -e TZ=Asia/Shanghai -e INSTALL4J_ADD_VM_PARAMS="-Xms1024m -Xmx1024m -XX:MaxDirectMemorySize=1024m" -v /data/docker/nexus/vdata:/var/nexus-data -v /data/docker/nexus/data:/nexus-data -d sonatype/nexus3

15. docker资源占用

ctop
如何实时查看Docker容器占用的CPU、内存状态? - 腾讯云开发者社区-腾讯云 (tencent.com)open in new window

16. rabbitmq

docker run --name=rabbitmq -p 25672:15672 -p 15672:5672 --network btvwlc -m 300M --memory-swap=300M -c 512 -e TZ=Asia/Shanghai -e RABBITMQ_DEFAULT_USER=rabbit -e RABBITMQ_DEFAULT_PASS=123456 -v /data/docker/rabbit/data:/var/lib/rabbitmq -v /data/docker/rabbit/conf:/etc/rabbitmq -d rabbitmq:management

17. rancher

docker run --name rancher -p 22000:80 -p 22443:443 --network btvwlc --privileged --restart=unless-stopped -d rancher/rancher:stable

18. canal

docker run -p 11111:11111 --name canal -d docker.io/canal/canal-server

19. mongodb

# mongodb
docker run -d --name mongodb --network btvwlc -p 27017:27017 --privileged=true -v E:/Develop/Docker/data/mongo/conf:/etc/mongo -v E:/Develop/Docker/data/mongo/data:/data/db -v E:/Develop/Docker/data/mongo/logs:/var/log/mongodb -e TZ=Asia/Shanghai -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin mongo:4.4 --auth

20. rocketmq

安装NameSrv

docker run -d --restart=always --name rmqnamesrv --privileged=true -p 9876:9876 -v /opt/dockers/rocketmq/data/namesrv/logs:/root/logs -v /opt/dockers/rocketmq/data/namesrv/store:/root/store -e "MAX_POSSIBLE_HEAP=100000000" rocketmqinc/rocketmq sh mqnamesrv

安装Broker

docker run -d --restart=always --name rmqbroker --link rmqnamesrv:namesrv -p 10911:10911 -p 10909:10909 --privileged=true -v /opt/dockers/rocketmq/data/broker/logs:/root/logs -v /opt/dockers/rocketmq/data/broker/store:/root/store -v /opt/dockers/rocketmq/conf/broker.conf:/opt/rocketmq-4.4.0/conf/broker.conf -e "NAMESRV_ADDR=namesrv:9876" -e "MAX_POSSIBLE_HEAP=200000000" rocketmqinc/rocketmq sh mqbroker -c /opt/rocketmq-4.4.0/conf/broker.conf

21. nginx-proxy-manager

# nginx-proxy-manager
docker run -d --name=nginx-proxy-manager --network btvwlc -p 8181:8181 -p 8080:8080 -p 4443:4443 -v E:/Develop/Docker/data/nginx-proxy-manager:/config:rw jlesage/nginx-proxy-manager

22. siyuan

docker run -v /siyuan/workspace:/siyuan/workspace -p 6806:6806 -u 1000:1000 b3log/siyuan --workspace=/siyuan/workspace/

docker run \
  --detach \
  --name siyuan \
  -v /data/siyuan:/data/siyuan \
  -p 6806:6806 \
  -u 1000:1000  b3log/siyuan \
  --ssl=true \
  --resident=true \
  --lang=zh_CN \
  --workspace=/data/siyuan/

docker run -d \
  --name sybj \
  -v /mnt/思源笔记:/siyuan/workspace \
  -e PUID=$UID \
  -e PGID=$GID \
  -p 6806:6806 \
  b3log/siyuan \
  --workspace=/siyuan/workspace/

23. wiznote

文档说明:为知笔记服务端docker镜像使用说明open in new window

默认管理员账号:admin@wiz.cn,密码:123456

windows

docker run --name wiz --restart=always -it -d -v  D:/wizdata:/wiz/storage -p 80:80 -p 9269:9269/udp -d wiznote/wizserver

linux

docker run --name wiz --network btvwlc -it -v /opt/dockers/data/wiz:/wiz/storage -p 10080:80 -p 9269:9269/udp -d wiznote/wizserver

24. webstack

# 启动webstack
docker run --privileged=true --network btvwlc -p 12000:8000 --name webstack -e WEBSTACK_DB_URL="jdbc:mysql://172.18.0.1:3306/webstack?autoReconnect=true&allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT" -e WEBSTACK_DB_USERNAME=root -e WEBSTACK_DB_PASSWORD=123456 -v "E:/Develop/Docker/data/webstack":/opt/webstack/run -d webstack:1.0

25. ruoyi

# 启动ruoyi
docker run --privileged=true --network btvwlc -p 13000:10130 --name ruoyi -e NAV_DB_URL="jdbc:mysql://mysql:3306/ruoyi-fast?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true" -e NAV_DB_USERNAME=root -e NAV_DB_PASSWORD=123456 -v "E:/Develop/Docker/data/ruoyi":/opt/ruoyi/run -d ruoyi:1.3
上次编辑于:
贡献者: soulballad