學習Docker的過程就是安裝各種鏡像、環境搭建的過程。下面是常用Docker公共鏡像的安裝方式,記錄下來,環境收藏~
一、安裝Mysql
1.創建mysql
下載鏡像:
<code>docker pull centos/mysql-57-centos7/<code>
創建容器:
<code>docker run -di --name=mysql --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 centos/mysql-57-centos7/<code>
二、創建redis
下載鏡像:
<code>docker pull redis/<code>
創建容器
<code>docker run -di --name=redis --restart=always -p 6379:6379 -e requirepass=123456 redis/<code>
三、創建mongodb
下載鏡像:
<code>docker pull mongo/<code>
創建容器:
<code>docker run -di --name=tensquare_mongo --restart=always -p 27017:27017 mongo/<code>
四、創建nexus倉庫
nexus是maven、npm的私服倉庫軟件,在企業內部可以使用此係統安裝私服,防止因網絡緩慢、及其他問題導致的包無法下載問題。自己公司內的包可以上傳至此倉庫,配合使用。
下載鏡像:
<code>docker pull sonatype/nexus3/<code>
創建容器:
<code>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/<code>
錯誤處理:
<code>mkdir: cannot create directory '../sonatype-work/nexus3/log': Permission denied/<code>
<code>chown -R 200 /opt/nexus-data//<code>
五、安裝easy-mock
easy-mock是接口模擬工具,供前端開發使用。擺脫了後端接口未完成的情況。
下載鏡像
<code>docker pull blackcater/easy-moc/<code>
創建容器
<code>docker run -d -p 7300:7300 --link mongodb:mongodb -v /opt/mock-config/:/easy-mock/config --name easymock blackcater/easy-mock
/<code>
六、安裝docker-compose
<code>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
/<code>
七、安裝easy-mock
<code>docker-compose up -d/<code>
八、安裝gogs
下載鏡像
<code>docker pull gogs/gogs
/<code>
創建存儲目錄
<code>mkdir -p /var/gogs/<code>
創建容器
<code>docker run -di --name=gogs --restart=always -p 10022:22 -p 3000:3000 -v /var/gogs:/data gogs/gogs
/<code>
重新安裝時記得刪除/var/gogs下文件,並賦予權限
http_port 改為3000 ,root_url改為dominIP:3080
九、安裝GitLab
下載鏡像
<code>docker pull docker.io/gitlab/gitlab-ce
/<code>
創建容器
<code>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
/<code>
十、安裝內部郵件系統
拉取鏡像
<code>docker pull bestwu/ewomail/<code>
創建容器:
<code> 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
/<code>
默認管理用戶名:admin ewomail123
郵箱管理後臺http://192.168.4.188:18003 賬號 admin 密碼 ewomail123
接收不到郵件解決辦法
有效於錯誤日誌報10024端口錯誤
錯誤原因:10024端口跑的服務主要用於ewomail中反垃圾反病毒作用,然而docker鏡像中沒有集成,所以會無法接收到郵件。
- 註釋/etc/postfix/main.cf中的
<code>content_filter = smtp-amavis:[127.0.0.1]:10024
receive_override_options = no_address_mappings/<code>
十一、容器搭建DNS服務器
拉取鏡像:
<code>docker pull sameersbn/bind/<code>
創建容器:
<code>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/<code>
登錄賬戶密碼:root/password
十二:搭建nginx服務器
拉取鏡像
<code>docker pull nginx/<code>
創建容器
<code>docker run -d -p 80:80 --restart=always --name nginx nginx/<code>
拷貝配置:
<code>docker cp -a nginx:/etc/nginx/ /docker/nginx/conf
/<code>
停止並重啟
<code>docker stop nginx
docker rm nginx/<code>
重新運行掛載
<code>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/<code>
重啟
<code>docker restart nginx/<code>
十三、關閉防火牆
<code>systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動/<code>
十四、創建私有倉庫
拉取鏡像
<code>docker pull registry/<code>
創建容器
<code>docker run -di --restart=always --name=registry -p 5000:5000 registry/<code>
十五、創建jenkins
拉取鏡像
<code>docker pull jenkins/<code>
創建容器
<code>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
/<code>
jenkins換源:
以上的配置Json其實在Jenkins的工作目錄中
<code>$ cd {你的Jenkins工作目錄}/updates #進入更新配置位置/<code>
<code>$ vim default.json #這個Json文件與上邊的配置文件是相同的/<code>
使用vim的命令,如下,替換所有插件下載的url
<code>將文件中所有,
http://updates.jenkins-ci.org/download/
替換為
https://mirrors.tuna.tsinghua.edu.cn/jenkins/g/<code>
<code>http://www.google.com/
替換為:
https://www.baidu.com//<code>
十六、安裝tomcat
拉取鏡像
<code>docker pull tomcat/<code>
創建容器
<code>docker run -d --restart=always -v /docker/tomcat:/usr/local/tomcat/webapps --name=tomcat -p 18006:8080 tomcat/<code>
十七、安裝oracle
拉取鏡像
<code>docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g/<code>
創建容器
<code>#啟動啟動容器
docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
docker start oracle11g/<code>
創建軟鏈接
<code>docker exec -it oracle11g bash/<code>
切換到root 用戶下
<code>su root
密碼:helowin/<code>
編輯profile文件配置ORACLE環境變量
<code>export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH/<code>
創建軟連接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
切換到oracle 用戶
這裡還要說一下,一定要寫中間的內條 - 必須要,否則軟連接無效
<code>su - oracle/<code>
登錄修改密碼:
<code>sqlplus /nolog
conn /as sysdba
alter user system identified by system;
alter user sys identified by sys;
也可以創建用戶 create user test identified by test;
並給用戶賦予權限 grant connect,resource,dba to test;
alter database mount;
#刷新下表
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
/<code>
服務名:
helowinXDB
端口號1521
添加模式:
<code>create user 用戶名 identified by 口令[即密碼];/<code>
十八、YAPI環境搭建
創建volume
<code>docker volume create yapi-mongo/<code>
創建一個儲存卷,用來專門存放yapi使用的mongodb的數據
為什麼要獨立出來,這是為了以後升級的著想,數據庫保留,只要啟動的時候關聯一下就行了
啟動mongodb
<code>docker run -d --name yapi-mongo -v yapi-mongo:/data/db -p 27017:27017 mongo/<code>
初始化Yapi和啟動Yapi
<code>docker run -d --name yapi -p 3000:3000 --link yapi-mongo crper/yapi/<code>
這裡比上面多的一個參數就是--link,用來使連個容器通訊的,
過程均可用docker logs 查看初始化的管理用戶用戶名密碼
閱讀更多 做全棧攻城獅 的文章