其他 · 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

Oracle

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
docker run --name oracle11g \
    -p 8521:1521  \
    -d --privileged  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 identified by test;
grant connect,resource,dba to test;

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





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