Docker使用记录
原创大约 4 分钟
Docker使用记录
安装
# 参考 https://www.runoob.com/docker/centos-docker-install.html
# 卸载旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 安装所需的软件包
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
# 设置国内源地址 阿里云
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装最新版
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 启动
sudo systemctl start docker
# 卸载
yum remove docker-ce
rm -rf /var/lib/docker
## deepin/ubuntu 安装
# 卸载
sudo apt-get remove docker docker-engine docker.io containerd runc
# 更新 apt 包索引
sudo apt-get update
# 安装 apt 依赖包,用于通过HTTPS来获取仓库:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
# 添加 Docker 的官方 GPG 密钥:
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥
sudo apt-key fingerprint 0EBFCD88
# 使用以下指令设置稳定版仓库
sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
$(lsb_release -cs) \
stable"
# 上一步如果报错执行下面两步 没报错忽略
sudo vim /etc/apt/sources.list
# 添加
deb [arch=amd64] https://download.docker.com/linux/debian stretch stable
# 更新 apt 包索引。
sudo apt-get update
# 安装最新版本的 Docker Engine-Community 和 containerd ,或者转到下一步安装特定版本:
sudo apt-get install docker-ce docker-ce-cli containerd.io
# 查看版本
sudo docker version使用记录
# 创建网络
docker network create cat-net
# mysql
docker run -p 6101:3306 --network cat-net --name mysql8.0.23 -e MYSQL_ROOT_PASSWORD=six6 -d mysql:8.0.23 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
# redis
docker run -p 6201:6379 -it --network cat-net --name redis7.0.0 -d redis:7.0.0 --requirepass six6
# rabbitmq
docker run --network cat-net --name rabbitmq3.9.28 -d -p 6301:15672 -p 6302:5672 -e RABBITMQ_DEFAULT_USER=rabbitmq -e RABBITMQ_DEFAULT_PASS=rabbitmq rabbitmq:3.9.28-management
# elasticsearch
docker run --network cat-net --name elasticsearch7.17.0 -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 6401:9200 -p 9300:9300 elasticsearch:7.17.0
# 添加 ik 分词器 下载压缩包
# https://github.com/medcl/elasticsearch-analysis-ik/tags
# 上传到 docker 容器中
docker cp elasticsearch-analysis-ik-7.17.0.zip elasticsearch7.17.0:/usr/share/elasticsearch/plugins
docker exec -it elasticsearch7.17.0 /bin/bash
mkdir /usr/share/elasticsearch/plugins/ik
mv /usr/share/elasticsearch/plugins/elasticsearch-analysis-ik-7.17.0.zip /usr/share/elasticsearch/plugins/ik
cd /usr/share/elasticsearch/plugins/ik
unzip elasticsearch-analysis-ik-7.17.0.zip
rm -rf elasticsearch-analysis-ik-7.17.0.zip
exit
docker restart elasticsearch7.17.0
# kibana
docker run --network cat-net --name kibana7.17.0 -e ELASTICSEARCH_HOSTS=http://192.168.0.123:6401 -p 6501:5601 -d kibana:7.17.0
# 启动脚本
docker run mysql8.0.23
docker run redis7.0.0
docker run rabbitmq3.9.28
docker run elasticsearch7.17.0
docker run kibana7.17.0
# jenkins
docker pull jenkins/jenkins:2.402
# 加权访问容器卷映射到的宿主机文件
chown -R 1000:1000 /home/root/jenkins/jenkins_home
chown -R 1000:1000 /usr/local/maven
docker run -d --network cat-net --name jenkins -v /home/root/jenkins/jenkins_home:/var/jenkins_home -v /usr/local/maven:/usr/local/maven -v /soft/git/bin/git:/usr/local/git -v /etc/localtime:/etc/localtime -p 8080:8080 jenkins/jenkins:2.402
docker logs jenkins
#查看密钥
cat_server-1.0.jar
echo "准备停止cat_server.jar"
pid=`ps -ef | grep cat_server.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
echo "停止cat_server.jar完毕"
clean package -P prod -Dmaven.test.skip=true
# pre
BUILD_ID=DONTKILLME
echo "移动jar包到/var/jenkins_home/cat/cat_server,并去掉版本号名称"
if [ ! -d "/var/jenkins_home/cat/cat_server" ];then
mkdir /var/jenkins_home/cat/cat_server
else
echo "文件夹已经存在"
fi
if [ ! -f "/var/jenkins_home/cat/cat_server/cat_server.jar" ];then
echo "文件不存在"
else
rm -f /var/jenkins_home/cat/cat_server/cat_server.jar
fi
# post
mv -f /var/jenkins_home/workspace/cat_server/target/cat_server-1.0.jar /var/jenkins_home/cat/cat_server/cat_server.jar
echo "移动jar包完成"
echo "启动cat_server服务"
nohup java -jar /home/root/jenkins/jenkins_home/cat/cat_server/cat_server.jar --server.port=7777> /home/root/jenkins/jenkins_home/cat/cat_server/server.log 2>&1 &
echo "启动cat_server服务完成"
nohup /home/root/jdk/jdk-17.0.7/bin/java -jar /home/root/jenkins/jenkins_home/cat/cat_server/cat_server.jar --server.port=7777> /home/root/jenkins/jenkins_home/cat/cat_server/server.log 2>&1 &
# 日志持续输出
docker logs -f mysqlwindows docker wsl 配置存储位置
# 查看信息
wsl -l -v --all
# 退出windows docker 再次查看 状态为stopped 开始下一步
# 到处当前存储信息 d:\docker 自己创建
wsl --export docker-desktop d:\docker\docker-desktop.tar
wsl --export docker-desktop-data d:\docker\docker-desktop-data.tar
# 注销当前存储
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
# 新建两个文件夹 docker-desktop 和 docker-desktop-data 重新导入
wsl --import docker-desktop D:\docker\docker-desktop D:\docker\docker-desktop.tar --version 2
wsl --import docker-desktop-data D:\docker\docker-desktop-data D:\docker\docker-desktop-data.tar --version 2
# 验证 查看是否存在 wsl -l -v --all
# 再次启动docker即可Dockerfile
# 创建一个文件夹 当前文件夹 为工作空间 创建文件名称为 Dockerfile 注意: Dockerfile 无后缀
mkdir test
cd test
touch Dockerfile
# 内容写完后执行
# 当前工作文件夹下 image_name 自己要生成的镜像名称 tag 版本信息 注意 末尾的.
docker build -t image_name:tag .Dockerfile样例
FROM centos:centos7.9.2009
# 工作目录 类似于cd
WORKDIR /
# 创建时执行 即 docker build 同一空间内 尽量用一个 RUN 执行 多个命令 可用 && 连接 如 RUN mkdir test1.txt && mkdir /home/test2.txt
RUN mkdir test.txt
WORKDIR /
# 运行时执行 即 docker run
CMD ping baidu.com打包 容器/镜像
# 打包最终的仍是镜像 所以 容器打包需要先生成镜像
# 容器生成镜像
docker commit test test:v2
# 打包镜像并输出位置
docker save test:v2 -o D:\docker\Dockerfile\test\test-v2.tar