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