目录
一、Docker安装
1.1、yum更新
sudo yum update
1.2、卸载旧版本(如果安装过旧版本的话)
sudo yum remove docler \
docker-client\
docker-client-latest\
docker-common\
docker-latest\
docker-latest-logrotate\
docker-logrotate\
docker-engine\
docker-selinux
1.3、安装需要的软件包
yum-util 提供yum-config-manager功能,另外两个是device mapper驱动依赖的
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
1.4、设置yum源
# 国外镜像
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 阿里镜像
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.5、查看仓库中docker版本
yum list docker-ce --showduplicates | sort -r
1.6、安装
#安装最新稳定版
sudo yum install -y docker-ce docker-ce-di containerd.io
#指定安装版本
sudo yum install xxx
1.7、配置加速
mkdir -p /etc/docker
# 阿里云镜像地址 systemd驱动设置
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors":["https://82m9ar63.mirror.aliyuncs.com"],
"exec-opts":["native.cgroupdriver=systemd"]
}
EOF
1.8、服务生效
# 开机启动
sudo systemctl enable docker
# 载入配置
sudo systemctl daemon-reload
# 重启docker
sudo systemctl restart docker
1.9、安装docker-compress
curl -SL https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
1.10、启停命令
# 查看状态
systemctl status docker
# 停止
systemctl stop docker
# 启动
systemctl start docker
# 重启
systemctl daemon-reload && systemctl restart docker
二、常用命令
在公用仓库中pull仓库镜像
docker pull registry
启动仓库镜像
#-d意思是后台运行,-p是做端口映射,这里是将本地的5000端口和容器中的5000端口对应 --restart=always自启动
docker run -d -p 5000:5000 registry
验证仓库
浏览器访问 http://127.0.0.1:5000/v2/_catalog
将本地镜像上传私有仓库
# 将镜像打上标签
docker tag hello 127.0.0.1:5000/hello
# 将镜像推送到本地仓库
docker push 127.0.0.1:5000/hello
进入容器
docker exec -it c4c /bin/bash
通过容器ID生成镜像
docker commit -m "oracle 11g" d038360bc3b8 cjavapy/oracle11g:latest
保存镜像到本地
docker save -o /home/openjdk.tar openjdk:8-jre-slim
加载镜像
# 原镜像名加载
docker load < /home/openjdk.tar
# 指定新镜像名
docker import - openjdk:1 < /home/openjdk.tar
Dockerfile 构建
docker build --no-cache=true -t 新镜像名字:TAG .
三、容器示例
3.1、Portainer(docker管理工具)
docker run -d --name portainer -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data 6053537/portainer-ce
3.2、Tomcat
docker run --name tomcat8083 -p 8083:8080 -v f:/docker/tomcat/8083/logs:/usr/local/tomcat/logs -v f:/docker/tomcat/8083/webapps:/usr/local/tomcat/webapps -v d:/Logs:/logs --restart=always -d tomcat:8.5.73-jdk8-corretto
3.3、MongoDB
docker run -itd --name mongo -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin --restart=always --mount source=mongo-db,target=/data/db 127.0.0.1:5000/mongo
docker-compose.yml
version: '3.7'
services:
mongo:
container_name: mongo
image: 127.0.0.1:5000/mongo
hostname: mongo
volumes:
- ./data/configdb:/data/configdb
- ./data/db:/data/db
ports:
- "27017:27017"
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: admin
privileged: true
3.4、Redis
三主三从集群创建
for port in $(seq 7001 7006);\
do\
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/mydata/redis/node-${port}/conf/reids.conf
port ${port}
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 192.168.8.56.10
cluster-announce-bus-port 1${port}
appendonly yes
EOF
docker run -p ${port}:${port} -p 1${port}:1${port} --name redis-${port} --restart always \
-v /mydata/redis/node-${port}/data:/data \
-v /mydata/redis/node-${port}/config/redis.conf:/etc/redis/redis.conf \
-d redis.5.0.7 redis-server /etc/reids/redis.conf;\
done
集群配置
docker exec -it redis-7001 /bin/bash
redis-cli --cluster create ip1:port1 ip2:port2 ... --cluster-replicas 1