自己搭的centos7的賬號密碼:misaka 123456
移除docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
安裝:
1 安裝必要工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2 添加軟件源信息
sudo yum-config-manager --add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3 更新yum緩存
sudo yum makecache fast
4 安裝docker ce
sudo yum -y install docker-ce
5 啓動
sudo systemctl start docker
6 測試
(sudo) docker run hello-world
7 使用國內鏡像
/etc/docker/daemon.json
沒有sudo vi daemon.json
{
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
命令:
docker ps (-a查看全部)查看容器
docker image 查看鏡像
docker start name/id 啓動容器
restart stop 重啓、停止
docker attach name/id 、docker exec -ti name.id /bin/bash進入容器
docker run -t(-d後臺運行) -i name/id /bin/bash 運行鏡像
docker rm name/id 刪除容器
docker rmi imagename 刪除鏡像
docker login -u 用戶名 -p 密碼 登錄
docker tag ddfddf/tutorial 你的用戶名/tutorial 創建倉庫
docker push 你的用戶名/tutorial 推送
docker logout 退出
參考資料
介紹 https://blog.csdn.net/deng624796905/article/details/86493330
dockerfile https://blog.csdn.net/qq_33256688/article/details/80319673
一 使用dockerfile搞一個搭建jdk、jenkins、mvn環境鏡像的東西
1 按上述安裝docker
2 giao到jdk安裝包、jenkins.war、maven,在文件下放置jenkins.war,解壓的jdk文件夾,解壓的maven文件夾,Dockerfile
FROM centos
MAINTAINER misaka kagami
COPY jdk1.8.0_211 jdk1.8.0_211
COPY apache-maven-3.6.1 apache-maven-3.6.1
ADD jenkins.war jenkins.war
ENV JAVA_HOME=/jdk1.8.0_211
ENV M2_HOME=/apache-maven-3.6.1
ENV PATH=$JAVA_HOME/bin:$PATH:$M2_HOME/bin
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/jenkins.war"]
3 編譯生成鏡像 docker build -t misaka/test .(最後有個點)
4 (可選)上傳鏡像 docker push 你的用戶名/tutorial 推送
5 創建容器、運行鏡像 docker run -d -p 192.168.0.105:8080:8080 --name websocket yaolin/websocket
二 giao一個svn鏡像
1 查一下docker search svn
2 拉取鏡像docker pull garethflowers/svn-server
3 運行鏡像 docker run --restart always --name svn -d -v /usr/svn/repo:/var/opt/svn -p 3690:3690 garethflowers/svn-server
配置svn:
1 進入容器 docker exec -it svn /bin/sh
2 創建倉庫svnadmin create 名字
3 cd進入倉庫文件,修改svnserve.conf、passwd、authz,如參考資料↓
參考資料: https://blog.csdn.net/l506945024/article/details/93057964
安裝jenkins 插件
Maven Integration
deploy to contain
publish over ssh
容器間找不到路由可以關閉防火牆
獲得root 控制權限。在“#”下操作。
查看防火牆狀態。
systemctl status firewalld
臨時關閉防火牆命令。重啓電腦後,防火牆自動起來。
systemctl stop firewalld
永久關閉防火牆命令。重啓後,防火牆不會自動啓動。
systemctl disable firewalld
打開防火牆命令。
systemctl enable firewalld
設置發佈
發佈位置放置jar包、app.sh
#!/bin/bash
## Author LinkinStar origin author
## UPDATE 2019-01-05
version="1.0.1";
appName=$2
if [ -z $appName ];then
appName=`ls -t |grep .jar$ |head -n1`
fi
function start()
{
count=`ps -ef |grep java|grep $appName|wc -l`
if [ $count != 0 ];then
echo "Maybe $appName is running, please check it..."
else
echo "The $appName is starting..."
nohup java -jar ./$appName -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Xms512M -Xmx4G > /dev/null 2>&1 &
fi
}
function stop()
{
appId=`ps -ef |grep java|grep $appName|awk '{print $2}'`
if [ -z $appId ];then
echo "Maybe $appName not running, please check it..."
else
echo "The $appName is stopping..."
kill $appId
fi
}
function restart()
{
# get release version
releaseApp=`ls -t |grep .jar$ |head -n1`
# get last version
lastVersionApp=`ls -t |grep .jar$ |head -n2 |tail -n1`
appName=$lastVersionApp
stop
for i in {5..1}
do
echo -n "$i "
sleep 1
done
echo 0
backup
appName=$releaseApp
start
}
function backup()
{
# get backup version
backupApp=`ls |grep -wv $releaseApp$ |grep .jar$`
# create backup dir
if [ ! -d "backup" ];then
mkdir backup
fi
# backup
for i in ${backupApp[@]}
do
echo "backup" $i
mv $i backup
done
}
function status()
{
appId=`ps -ef |grep java|grep $appName|awk '{print $2}'`
if [ -z $appId ]
then
echo -e "\033[31m Not running \033[0m"
else
echo -e "\033[32m Running [$appId] \033[0m"
fi
}
function usage()
{
echo "Usage: $0 {start|stop|restart|status|stop -f}"
echo "Example: $0 start"
exit 1
}
case $1 in
start)
start;;
stop)
stop;;
restart)
restart;;
status)
status;;
*)
usage;;
esac