Docker容器启动
约 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
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博客
Docker:虚拟机挂起后,再启动docker容器连接失败_51CTO博客_docker 容器启动失败
5. kafka
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
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 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
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)
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镜像使用说明
默认管理员账号: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