docker 创建各容器命令合集
学习中...持续更新
- docker-compose安装:
curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname \ -s`-`uname -m` -o /usr/local/bin/docker-compose
最新版本号可以通过 官方 GitHub Release 上来获取二进制文件。
chmod +x /usr/local/bin/docker-compose
添加可执行权限
- MySQL5.7.22:
docker run --restart=always -d \ -p 3306:3306 --name mysql \ -v /usr/local/docker/mysql/conf:/etc/mysql \ -v /usr/local/docker/mysql/logs:/var/log/mysql \ -v /usr/local/docker/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.22
- MySQL8.0.22:
docker run --restart=always -d \ -p 3307:3306 --name mysql \ -v /usr/local/docker/mysql/conf/my.cnf:/etc/mysql/my.cnf \ -v /usr/local/docker/mysql/logs:/logs \ -v /usr/local/docker/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 mysql
my.cnf
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # # The MySQL Server configuration file. # # For explanations see # http://dev.mysql.com/doc/mysql/en/server-system-variables.html [mysqld] pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock datadir = /var/lib/mysql secure-file-priv= NULL # Custom config should go here !includedir /etc/mysql/conf.d/
- Tomcat
docker run -d --name tomcat -p 8080:8080 \ -v /usr/local/docker/tomcat/ROOT:/usr/local/tomcat/webapps/ROOT \ tomcat
- nginx
docker run -d -p 80:80 --name nginx \ -v /usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /usr/local/docker/nginx/html:/usr/share/nginx/html \ nginx
- nexus3
授予文件夹读写权限
chmod 777 /usr/local/docker/nexus3/data
docker run -tid -p 8081:8081 --name nexus3 -e NEXUS_CONTEXT=nexus \ -v /usr/local/docker/nexus:/nexus-data docker.io/sonatype/nexus3
docker-compose.yml
version: '3.1'
services:
nexus:
restart: always
image: sonatype/nexus3
container_name: nexus
ports:
- 8081:8081
volumes:
- /usr/local/docker/nexus/data:/nexus-data
非流通包.jar文件上传nexus release
mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.4.0 -Dpackaging=jar -Dfile=D:\ojdbc14-10.2.0.4.0.jar -Durl=http://192.168.126.129:8081/repository/maven-releases/ -DrepositoryId=nexus-releases
这里用oracle ojdb来演示
-DgroupId=com.oracle #项目路径 -DartifactId=ojdbc14 #项目名 -Dversion=10.2.0.4.0 #版本号 -Dpackaging=jar #文件类型 -Dfile=D:\ojdbc14-10.2.0.4.0.jar #文件路径 -Durl=http://192.168.126.129:8081/repository/maven-releases/ #文件上传私服路径 -DrepositoryId=nexus-releases #私服id
- registry 和 registry-ui
version: "3.7"
services:
registry:
restart: always
image: registry
container_name: registry
ports:
- 5000:5000
volumes:
- /usr/local/docker/registry/data:/var/lib/registry
registry-ui:
restart: always
image: konradkleine/docker-registry-frontend:v2
container_name: registry-ui
environment:
ENV_DOCKER_REGISTRY_HOST: 192.168.126.128
ENV_DOCKER_REGISTRY_PORT: 5000
ports:
- 5001:80
volumes:
- /usr/local/docker/registry-ui/server.crt:/etc/apache2/server.crt:ro
- /usr/local/docker/registry-ui/server.key:/etc/apache2/server.key:ro
- Redis sentinel 集群部署
搭建一主两从环境,docker-compose.yml
version: '3.1'
services:
master:
image: redis
container_name: redis-master
ports:
- 6379:6379
slave1:
image: redis
container_name: redis-slave-1
ports:
- 6380:6379
command: redis-server --slaveof redis-master 6379
slave2:
image: redis
container_name: redis-slave-2
ports:
- 6381:6379
command: redis-server --slaveof redis-master 6379
至少需要创建三个 Sentinel 服务,docker-compose.yml
version: '3.1'
services:
sentinel1:
image: redis
container_name: redis-sentinel-1
ports:
- 26379:26379
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel1.conf:/usr/local/etc/redis/sentinel.conf
sentinel2:
image: redis
container_name: redis-sentinel-2
ports:
- 26380:26379
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel2.conf:/usr/local/etc/redis/sentinel.conf
sentinel3:
image: redis
container_name: redis-sentinel-3
ports:
- 26381:26379
command: redis-sentinel /usr/local/etc/redis/sentinel.conf
volumes:
- ./sentinel3.conf:/usr/local/etc/redis/sentinel.conf
sentinel1.conf,sentinel2.conf,sentinel3.conf配置文件,内容一致
port 26379 dir /tmp # 自定义集群名,其中 127.0.0.1 为 redis-master 的 ip,6379 为 redis-master 的端口,2 为最小投票数(因为有 3 台 Sentinel 所以可以设置成 2) sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 30000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 sentinel deny-scripts-reconfig yes
- rabbitMQ
version: '3.1'
services:
rabbitmq:
restart: always
image: rabbitmq:management
container_name: rabbitmq
ports:
- 5672:5672
- 15672:15672
environment:
TZ: Asia/Shanghai
RABBITMQ_DEFAULT_USER: rabbit
RABBITMQ_DEFAULT_PASS: 123456
volumes:
- /usr/local/docker/rabbitmq/data:/var/lib/rabbitmq

浙公网安备 33010602011771号