學(xué)習(xí)Docker的過程就是安裝各種鏡像、環(huán)境搭建的過程。下面是常用Docker公共鏡像的安裝方式,記錄下來,環(huán)境收藏~
一、安裝MySQL
1.創(chuàng)建mysql
下載鏡像:
docker pull centos/mysql-57-centos7
創(chuàng)建容器:
docker run -di --name=mysql --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSword=123456 centos/mysql-57-centos7
二、創(chuàng)建redis
下載鏡像:
docker pull redis
創(chuàng)建容器
docker run -di --name=redis --restart=always -p 6379:6379 -e requirepass=123456 redis
三、創(chuàng)建mongodb
下載鏡像:
docker pull mongo
創(chuàng)建容器:
docker run -di --name=tensquare_mongo --restart=always -p 27017:27017 mongo
四、創(chuàng)建nexus倉庫
nexus是maven、npm的私服倉庫軟件,在企業(yè)內(nèi)部可以使用此系統(tǒng)安裝私服,防止因網(wǎng)絡(luò)緩慢、及其他問題導(dǎo)致的包無法下載問題。自己公司內(nèi)的包可以上傳至此倉庫,配合使用。
下載鏡像:
docker pull sonatype/nexus3
創(chuàng)建容器:
docker run -di --name nexus3
--restart=always
-p 8081:8081
-p 8082:8082
-p 8083:8083
-p 8084:8084
-p 8085:8085
-v /opt/nexus-data:/nexus-data
sonatype/nexus3
錯(cuò)誤處理:
mkdir: cannot create directory '../sonatype-work/nexus3/log': Permission denied
chown -R 200 /opt/nexus-data/
五、安裝easy-mock
easy-mock是接口模擬工具,供前端開發(fā)使用。擺脫了后端接口未完成的情況。
下載鏡像
docker pull blackcater/easy-moc
創(chuàng)建容器
docker run -d -p 7300:7300 --link mongodb:mongodb -v /opt/mock-config/:/easy-mock/config --name easymock blackcater/easy-mock
六、安裝docker-compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
七、安裝easy-mock
docker-compose up -d
八、安裝gogs
下載鏡像
docker pull gogs/gogs
創(chuàng)建存儲(chǔ)目錄
mkdir -p /var/gogs
創(chuàng)建容器
docker run -di --name=gogs --restart=always -p 10022:22 -p 3000:3000 -v /var/gogs:/data gogs/gogs
重新安裝時(shí)記得刪除/var/gogs下文件,并賦予權(quán)限
http_port 改為3000 ,root_url改為dominIP:3080
九、安裝GitLab
下載鏡像
docker pull docker.io/gitlab/gitlab-ce
創(chuàng)建容器
docker run -d -h gitlab --restart=always -p 2222:22 -p 18001:80 -p 8443:443 -v /docker/gitlab/config:/etc/gitlab -v /docker/gitlab/logs:/var/log/gitlab -v /docker/gitlab/data:/var/opt/gitlab --restart always --name gitlab gitlab/gitlab-ce:latest
密碼123456789
十、安裝內(nèi)部郵件系統(tǒng)
拉取鏡像
docker pull bestwu/ewomail
創(chuàng)建容器:
docker run -d -h mail.zdpx.com --restart=always -p 25:25 -p 109:109 -p 110:110 -p 143:143 -p 465:465 -p 587:587 -p 993:993 -p 995:995 -p 18002:80 -p 18003:8080 -v `pwd`/mysql/:/ewomail/mysql/data/ -v `pwd`/vmail/:/ewomail/mail/ -v `pwd`/ssl/certs/:/etc/ssl/certs/ -v `pwd`/ssl/private/:/etc/ssl/private/ -v `pwd`/rainloop:/ewomail/www/rainloop/data -v `pwd`/ssl/dkim/:/ewomail/dkim/ --name ewomail bestwu/ewomailserver
默認(rèn)管理用戶名:admin ewomail123
郵箱管理后臺
http://192.168.4.188:18003 賬號 admin 密碼 ewomail123
接收不到郵件解決辦法
有效于錯(cuò)誤日志報(bào)10024端口錯(cuò)誤
錯(cuò)誤原因:10024端口跑的服務(wù)主要用于ewomail中反垃圾反病毒作用,然而docker鏡像中沒有集成,所以會(huì)無法接收到郵件。
- 注釋/etc/postfix/main.cf中的
content_filter = smtp-amavis:[127.0.0.1]:10024
receive_override_options = no_address_mAppings
十一、容器搭建DNS服務(wù)器
拉取鏡像:
docker pull sameersbn/bind
創(chuàng)建容器:
docker run --name bind -d --restart=always --publish 53:53/tcp --publish 53:53/udp --publish 10000:10000/tcp --volume /srv/docker/bind:/data sameersbn/bind:latest
登錄賬戶密碼:root/password
十二:搭建Nginx服務(wù)器
拉取鏡像
docker pull nginx
創(chuàng)建容器
docker run -d -p 80:80 --restart=always --name nginx nginx
拷貝配置:
docker cp -a nginx:/etc/nginx/ /docker/nginx/conf
停止并重啟
docker stop nginx
docker rm nginx
重新運(yùn)行掛載
docker run -p 80:80 --restart always --name nginx -v /docker/nginx/www:/www -v /docker/nginx/conf:/etc/nginx/ -v /docker/nginx/logs:/var/log/nginx -v /docker/nginx/wwwlogs:/wwwlogs -d nginx
重啟
docker restart nginx
十三、關(guān)閉防火墻
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機(jī)啟動(dòng)
十四、創(chuàng)建私有倉庫
拉取鏡像
docker pull registry
創(chuàng)建容器
docker run -di --restart=always --name=registry -p 5000:5000 registry
十五、創(chuàng)建jenkins
拉取鏡像
docker pull jenkins
創(chuàng)建容器
docker run -d -p 18005:8080 -v /docker/jenkins:/var/jenkins_home --name jenkins --restart=always jenkins
docker run --name jenkins --user=root -p 18005:8080 -p 50000:50000 -v /docker/jenkins:/var/jenkins_home -d jenkins/jenkins:lts
jenkins換源:
以上的配置Json其實(shí)在Jenkins的工作目錄中
$ cd {你的Jenkins工作目錄}/updates #進(jìn)入更新配置位置
$ vim default.json #這個(gè)Json文件與上邊的配置文件是相同的
使用vim的命令,如下,替換所有插件下載的url
將文件中所有,
http://updates.jenkins-ci.org/download/
替換為
https://mirrors.tuna.tsinghua.edu.cn/jenkins/g
http://www.google.com/
替換為:
https://www.baidu.com/
十六、安裝Tomcat
拉取鏡像
docker pull tomcat
創(chuàng)建容器
docker run -d --restart=always -v /docker/tomcat:/usr/local/tomcat/webapps --name=tomcat -p 18006:8080 tomcat
十七、安裝oracle
拉取鏡像
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
創(chuàng)建容器
#啟動(dòng)啟動(dòng)容器
docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
docker start oracle11g
創(chuàng)建軟鏈接
docker exec -it oracle11g bash
切換到root 用戶下
su root
密碼:helowin
編輯profile文件配置ORACLE環(huán)境變量
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
創(chuàng)建軟連接
? ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
切換到oracle 用戶
? 這里還要說一下,一定要寫中間的內(nèi)條 - 必須要,否則軟連接無效
su - oracle
登錄修改密碼:
sqlplus /nolog
conn /as sysdba
alter user system identified by system;
alter user sys identified by sys;
也可以創(chuàng)建用戶 create user test identified by test;
并給用戶賦予權(quán)限 grant connect,resource,dba to test;
alter database mount;
#刷新下表
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
服務(wù)名:
helowinXDB
端口號1521
添加模式:
create user 用戶名 identified by 口令[即密碼];
十八、YAPI環(huán)境搭建
創(chuàng)建volume
docker volume create yapi-mongo
創(chuàng)建一個(gè)儲(chǔ)存卷,用來專門存放yapi使用的mongodb的數(shù)據(jù)
為什么要獨(dú)立出來,這是為了以后升級的著想,數(shù)據(jù)庫保留,只要啟動(dòng)的時(shí)候關(guān)聯(lián)一下就行了
啟動(dòng)mongodb
docker run -d --name yapi-mongo -v yapi-mongo:/data/db -p 27017:27017 mongo
初始化Yapi和啟動(dòng)Yapi
docker run -d --name yapi -p 3000:3000 --link yapi-mongo crper/yapi
這里比上面多的一個(gè)參數(shù)就是--link,用來使連個(gè)容器通訊的,
過程均可用docker logs 查看初始化的管理用戶用戶名密碼