常用命令整理
ubuntu快速安装docker
apt -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
apt update
apt -y install docker-ce docker-ce-cli containerd.io
systemctl status docker
apt-mark hold docker-ce
docker container run hello-world
apt -y install docker-compose
apt-mark hold docker-compose
docker version
docker-compose version
ssh-keygen -t rsa -P ''
docker修改国内安装源
以下是一些常用的国内Docker镜像源:
- DaoCloud加速器(https://www.daocloud.io/mirror)
- 网易云镜像(https://hub-mirror.c.163.com)
- 阿里云镜像(https://cr.console.aliyun.com/) 使用这些镜像源,可以通过修改Docker的配置文件来替换默认的镜像源。具体操作如下:
- 打开Docker配置文件(通常位于
/etc/docker/daemon.json
或者~/.docker/daemon.json
)。 - 如果文件不存在,可以创建一个新的文件。
- 在配置文件中添加以下内容,替换为对应的镜像源地址:
{ "registry-mirrors": ["镜像源地址"] }
- 保存配置文件,并重启Docker服务。
修改完配置文件并重启Docker服务后,Docker将会使用国内的镜像源来下载和部署镜像,加快速度和稳定性。
81 LANG=zh_CN.UTF-8 82 LANGUAGE=zh_US:
{ "insecure-registries" : ["192.168.1.11:80"], "registry-mirrors": ["https://cr.console.aliyun.com/"] }
docker部署gitlab
创建docker-compose.yml
version: '3.1' services: gitlab: image: 'gitlab/gitlab-ce:latest' container_name: gitlab restart: always environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://192.168.1.11:8998' gitlab_rails['gitlab_shell_ssh_port'] = 2224 ports: - '8998:8998' - '2224:22' volumes: - ./data:/var/opt/gitlab - ./logs:/var/log/gitlab - ./config:/etc/gitlab
可能用到的命令
docker-compose up -d docker-compose logs -f docker exec -it gitlab bash
docker部署jenkins
- 创建docker-compose.yml
version: "3.1"
services:
jenkins:
container_name: jenkins
image: jenkins/jenkins:lts
user: root
ports:
- 8888:8080
- 50000:50000
restart: "always"
volumes:
- ./data/:/var/jenkins_home/
jenkins修改安装源
- 修改
data/hudson.model.UpdateCenter.xml
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
</site>
</sites>
- 替换国内:
sed -i 's/https:\/\/updates.jenkins.io\/download/http:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' data/updates/default.json
sed -i 's/https:\/\/www.google.com/https:\/\/www.baidu.com/g' data/updates/default.json
安装sonarqube
docker pull postgres
docker pull sonarqube:9.9-community
mkdir sonarqube_docker
cd sonarqube_docker
vim docker-compose.yml
docker-compose.yml
如下:
version: "3.1"
services:
db:
image: postgres
container_name: db
ports:
- 5432:5432
networks:
- sonarnet
environment:
POSTGRES_USER: sonar
POSTGRES_PASSWORD: sonar
sonarqube:
image: sonarqube:9.9-community
container_name: sonarqube
depends_on:
- db
ports:
- 9000:9000
networks:
- sonarnet
environment:
SONAR_JDBC_URL: jdbc:postgresql://db:5432/sonar
SONAR_JDBC_USERNAME: sonar
SONAR_JDBC_PASSWORD: sonar
networks:
sonarnet:
driver: bridge
- 修改系统配置
vim /etc/sysctl.conf
vm.max_map_count = 262144
重启使生效,
sysctl -p
查看日志
docker-compose logs -f
sonar-scanner 集成到jenkins
下载sonar-scanner https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-5.0.1.3006-linux.zip squ_a6079b4fa22eaf3e9579e7b0f297221bf7beb8e5
/root/docker-jenkins/data/sonar-scanner/bin/sonar-scanner -Dsonar.source=./ -Dsonar.projectname=demo1 -Dsonar.login=squ_a6079b4fa22eaf3e9579e7b0f297221bf7beb8e5 -Dsonar.projectKey=demo1
jenkins安装配置插件
/var/jenkins_home/sonar-scanner/bin/sonar-scanner -Dsonar.source=./ -Dsonar.projectname=demo1 -Dsonar.login=squ_a6079b4fa22eaf3e9579e7b0f297221bf7beb8e5 -Dsonar.projectKey=demo1
rm -rf docker-jenkins/data/workspace/testjenkins/src/.scannerwork/ cd /var/jenkins_home/workspace/
harbor安装
下载 Releases · goharbor/harbor (github.com)
harbor地址/项目名/镜像名:版本
docker配置
- docker创建 /etc/docker/daemon.json
{
"insecure-registries" : ["192.168.1.11:80"]
}
重启docker
Docker 删除 none
docker images | grep none | awk '{print $3}' | xargs docker rmi
docker容器jenkins内使用宿主机docker
/var/run/docker.sock
映射
chown root:root docker.sock
chmod o+rw docker.sock
version: "3.1"
services:
jenkins:
container_name: jenkins
image: jenkins/jenkins:lts
user: root
ports:
- 8888:8080
- 50000:50000
restart: "always"
volumes:
- ./data/:/var/jenkins_home/
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /etc/docker/daemon.json:/etc/docker/daemon.json
一个部署脚本
harbor_addr=$1
harbor_repo=$2
project=$3
version=$4
container_port=$5
host_port=$6
harbor_user=$7
harbor_password=$8
image_name=$harbor_addr/$harbor_repo/$project
img=$harbor_addr/$harbor_repo/$project:$version
echo $image_name
for container_id in `docker ps -a |grep $project |awk -F' ' '{print $1}' `
do
echo $container_id
docker stop $container_id
docker rm $container_id
done
for tag in `docker images | grep $image_name | awk -F ' ' '{print $2}' `
do
if [ $tag = $version ]
then
docker rmi -f $img
fi
done
docker login -u $harbor_user -p $harbor_password $harbor_addr
docker pull $img
docker run -d -p $host_port:$container_port --name $project $img
docker ps -a |grep $project
echo SUCCESS
git checkout $tag
if [ -e "src.tar.gz" ]
then
rm -rf src.tar.gz
fi
tar -zvcf src.tar.gz src
git tag -a 'v5.0.0' -m "单机harbor第三个版本"
git push origin v5.0.0
ubuntu 绑定ip
vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.50
netmask 255.255.255.0
gateway 192.168.1.1