其他 · 2021年8月13日 0

常用的Docker仓库

简介

开发与测试环境中使用容器化部署各项服务就是好用,真香。无特殊说明均为Centos。如果存在容器之间的互相调用,建议使用docker run --link 的方式启用;还有一种办法,在容器创建时固定容器IP。

Mysql

docker run \
-p 3306:3306 --name mysql \
-v /data/mysql/conf/conf.d:/etc/mysql/conf.d \
-v /data/mysql/conf/mysql.conf.d:/etc/mysql/mysql.conf.d \
-v /data/mysql/logs:/logs \
-v /data/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

Jenkins

初始密码在容器内此目录下cat /var/jenkins_home/secrets/initialAdminPassword
需要进入容器内查看

sudo docker pull jenkinsci/blueocean

docker run \
    -u root \
    --name jenkins -d \
    -p 9699:8080 \
    -p 50000:50000 \
    -v /data/jenkins_home:/var/jenkins_home \
    -v /var/run/docker.sock:/var/run/docker.sock \
    jenkinsci/blueocean
# 可以在jenkins 命令执行工具中执行,修改时区
System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')
# 删除jenkins构建历史
def jobName = "userapi"
def maxNumber = 100
Jenkins.instance.getItemByFullName(jobName).builds.findAll {
  it.number <= maxNumber
}.each {
  it.delete()
}

Rabbitmq

sudo docker pull rabbitmq:management

docker run \
    -d --name rabbitmq \
    -p 5672:5672 -p 9697:15672 \
    -v /data/rabbitmq/lib:/var/lib/rabbitmq \
    -v /data/rabbitmq/log:/var/log/rabbitmq \
    --hostname myRabbit \
    -e RABBITMQ_DEFAULT_VHOST=my_vhost  \
    -e RABBITMQ_DEFAULT_USER=admin \
    -e RABBITMQ_DEFAULT_PASS=admin \
    rabbitmq:management

Redis

sudo docker pull redis:latest

docker run -itd --name redis -p 6379:6379 --ip 172.17.0.3 redis

vsFTPd

centos下ftp链接工具,主动模式无法使用lsanddir命令,但是其他可用:

ftp -A  47.99.241.224
Connected to 47.99.241.224 (47.99.241.224).
220 (vsFTPd 3.0.2)
Name (47.99.241.224:root): test
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

ftp> ls
500 Illegal PORT command.
ftp: bind: Address already in use
ftp> pwd
257 "/"
ftp> passive
Passive mode on.
ftp> ls
227 Entering Passive Mode (47,99,241,224,82,113).
150 Here comes the directory listing.
drwx------    4 ftp      ftp            29 Apr 10 07:49 etcbill
226 Directory send OK.

ubuntu下也存在同样的问题,不过提示不一样:

ftp> ls
200 PORT command successful. Consider using PASV.

ftp> passive
Passive mode on.
ftp> ls
227 Entering Passive Mode (47,99,241,224,82,108).
150 Here comes the directory listing.
drwx------    4 ftp      ftp            29 Apr 10 07:49 etcbill
226 Directory send OK.

主动模式无法使用lsanddir命令这个问题尚无法确定是ftp客户端工具问题还是vsftpd的问题。但是不影响其使用。

https://www.jianshu.com/p/91c7d4a115e0

https://www.jianshu.com/p/9b6389a26336

# /data/ftp/test
yum -y install vsftpd

# 添加匿名用户
useradd test -d /data/ftp/test -s /sbin/nologin
# 修改ftpfile权限
chown -R test.test /data/ftp/test
# 重设ftpuser 密码
passwd test

# chmod 755 -R /data/ftp
# chmod 777 -R /data/ftp/test

# 用户添加
vim /etc/vsftpd/chroot_list
# test

# 可使用默认的
vim /etc/vsftpd/vsftpd.conf

#主动模式
#connect_from_port_20=YES
#pasv_enable=NO

# 只有/etc/vsftpd.chroot_list文件中指定的用户可以返回上一层
# chroot_local_user=YES
# chroot_list_enable=YES
# chroot_list_file=/etc/vsftpd/chroot_list
# 能写入自己的目录
# allow_writeable_chroot=YES

# 配置项的含义为仅允许用户的shell为 /etc/shells文件内的shell命令时,才能够成功
# 而创建ftp用户时,为了禁止ssh登录,一般多为/bin/false 、/usr/sbin/nologin 等,显然不是一个有效的bash,也就无法登录了。
vim /etc/pam.d/vsftpd
# auth required pam_shells.so 替换为以下内容
# auth required pam_nologin.so

建议使用docker

https://github.com/fauria/docker-vsftpd/

docker search vsftpd
docker pull fauria/vsftpd 
docker run \
    -d --name vsftpd \
    -v /data/vsftpd:/home/vsftpd \
    -p 20:20 -p 21:21 -p 21100-21110:21100-21110 \
    -e FTP_USER=test -e FTP_PASS='test' \
    -e PASV_ADDRESS=47.99.241.224 \
    -e PASV_MIN_PORT=21100 \
    -e PASV_MAX_PORT=21110 \
    -e FILE_OPEN_MODE=0777 \
    -e REVERSE_LOOKUP_ENABLE=NO \
    --restart=always \
    --network ftpnet --ip 172.18.0.3 \
    fauria/vsftpd

Elasticsearch

docker search elasticsearch
docker pull docker.io/elasticsearch:7.13.2

# 由于映射了目录此处存在权限问题,需要把宿主机目录的权限改为777
# 内存可能是必须指定,8G的机器不指定启动不了
docker run -d --privileged=true -p 9200:9200 -p 9300:9300 \
    -e "discovery.type=single-node" \
    -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
    -v /data/es/data:/usr/share/elasticsearch/data  \
    -v /data/es/logs:/usr/share/elasticsearch/logs  \
    --name='es7' docker.io/elasticsearch:7.13.2

shadowsocks

docker pull mritd/shadowsocks
docker run -dt --name ssserver -p 9503:9503 mritd/shadowsocks -m "ss-server" -s "-s 0.0.0.0 -p 9503 -m chacha20-ietf-poly1305 -k 123123"

wordpress

docker run -d --name nm1024 \
    -e WORDPRESS_DB_HOST=mysql  \
    -e WORDPRESS_DB_USER=root  \
    -e WORDPRESS_DB_PASSWORD=root  \
    -e WORDPRESS_DB_NAME=nm1024  \
    -p 1080:80  \
    --link mysql:mysql wordpress

Oracle11g

可以直接参考此文章Docker安装Oracle11g - 背锅的Mike - 博客园 (cnblogs.com)

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
docker run -d --privileged \
    --restart=always \
    -p 5522:1521  \
    -v /data/oracle11g/oracle:/home/oracle \
    --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

docker exec -it oracle11g  /bin/bash
source /home/oracle/.bash_profile
sqlplus /nolog

#进入数据库
connect /as sysdba

create user test_asd identified by test_asd;
grant connect,resource,dba to test_asd;

Oracle12c

docker run -d \
--restart always \
-p 8080:8080 -p 1521:1521 \
-v /data/oracle12c:/u01/app/oracle \
--name oracle12c \
truevoly/oracle-12c

192.168.113.66:1521
xe
system
oracle

http://192.168.113.66:8080/apex
INTERNAL
ADMIN
Oracle!123

Oracle19c

docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c

docker run -d  \
-p 1521:1521 -p 5500:5500 \
-e ORACLE_SID=ORCLCDB \
-e ORACLE_PDB=ORCLPDB1 \
-e ORACLE_PWD=123456 \
-e ORACLE_EDITION=standard \
-e ORACLE_CHARACTERSET=AL32UTF8 \
-v /data/oracle19c:/opt/oracle/oradata \
--name oracle19c \
registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
https://192.168.113.66:5500/em

username:sys
password:123456
Container Name:ORCLPDB1

192.168.113.66:1521
ORCLCDB
system
123456

Plumelog

需要准备配置文件

详情Plumelog Docker部署

docker pull xiaobai021sdo/plumelog:3.5

docker run -d --name plumelog-35  \
    -v /data/dyservice/plumelog-server:/plumelog-server \
    -p 8891:8891 xiaobai021sdo/plumelog:3.5

Plumelog需要使用es7,但是他会用到ES7的分片,ES7的一个节点分片大小是1000,会超过上限导致日志无法插入,零时的解决办法是增加ES7分片大小:

curl -XPUT -H "Content-Type:application/json" -d '{"persistent":{"cluster":{"max_shards_per_node":10000}}}' 'http://es-host:9200/_cluster/settings'

以上问题在新版plumelog中得到了解决,可以参考官方文档。

minio

docker pull minio/minio

docker run --name minio75 \
-p 9000:9000 \
-p 9090:9090 \
-d --restart=always \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=test.minio" \
-v /data/minio/data:/data \
quay.io/minio/minio server /data --console-address ":9090"

xxl-job

详细部署方案参照官网

docker run -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin  -d xuxueli/xxl-job-admin:2.3.0
/**
* 如需自定义 mysql 等配置,可通过 "-e PARAMS" 指定,参数格式 PARAMS="--key=value  --key2=value2" ;
* 配置项参考文件:/xxl-job/xxl-job-admin/src/main/resources/application.properties
* 如需自定义 JVM内存参数 等配置,可通过 "-e JAVA_OPTS" 指定,参数格式 JAVA_OPTS="-Xmx512m" ;
*/
docker run -e PARAMS="--spring.datasource.url=jdbc:mysql://172.16.1.1:8892/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai  --spring.datasource.username=root  --spring.datasource.password=qweasdzxc  --xxl.job.accessToken=aad9024b5cc8f6226b899616e8a8aeff214d549fe964faf6c2009fca0d5d80cd" \
    -e JAVA_OPTS="-Xmx512m" \
    -p 8894:8080 \
    -v /data/xxl-job/logs:/data/applogs \
    --name xxl-job-admin  \
    -d xuxueli/xxl-job-admin:2.3.0

GitLab

sudo docker run --detach \
  --hostname gitlab.example.com \
  --publish 4090:80 --publish 4091:22 \
  --name gitlab \
  --restart always \
  --volume /data/gitlab/config:/etc/gitlab \
  --volume /data/gitlab/logs:/var/log/gitlab \
  --volume /data/gitlab/data:/var/opt/gitlab \
  --shm-size 256m \
  registry.gitlab.cn/omnibus/gitlab-jh:latest

Nginx

docker run -d \
--name nginx --restart always \
-p 80:80 -p 443:443 \
-e "TZ=Asia/Shanghai" \
-v /data/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/conf.d:/etc/nginx/conf.d \
-v /data/nginx/logs:/var/log/nginx \
-v /data/nginx/cert:/etc/nginx/cert \
-v /data/nginx/html:/usr/share/nginx/html \
nginx:alpine





>>转载请注明原文链接地址:常用的Docker仓库