一、安装
Centos8安装docker
https://developer.aliyun.com/article/753261 参考
若以前安装过
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-ce \
docker-engine
安装yum-utils
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
添加阿里仓库
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
yum install docker-ce docker-ce-cli containerd.io
启动docker 及查看
systemctl start docker
systemctl status docker
docker -v
配置镜像加速器
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
二、docker 基本操作
1、镜像操作
docker pull 拉取镜像
docker images 查看
docker rmi 删除 nginx:latest / images_id
docker push 推送
docker build 本地构建
docker build -t userservice:1.0.1 .
docker --help 查看命令
docker save -o name.tar nginx:latest 打包镜像
docker load -i name.tar 加载镜像
2、容器操作
docker run 运行
docker run --name nginx1 -p 80:80 -d nginx
docker ps 查看运行容器
-a 查看所有容器
docker logs 查看日志
docker logs nginx1
docker logs -f nginx1
docker pause 暂停
docker unpause 恢复
docker start 启动
docker stop 停止 杀掉进程
docker stop nginx1
docker rm 删除容器
docker rm nginx1
-f 强制删除运行中的容器
docker exec 进入容器执行命令
docker exec -it nginx1 bash
3、数据卷
docker volume --help
create 创建
inspect 查看详细信息
ls 查看
prune 删除未使用
rm 删除
挂载数据卷
docker run --name nginx1 -p 80:80 -v html:/usr/share/nginx/html -d nginx
挂载目录
-v /tmp/dd/dd:/tmp/dd/dd
-v /tmp/dd/dd.txt:/tmp/dd/dd.txt
4、通过docker 安装mysql、redis 、nginx
docker run --name nginx1 -p 80:80 -v html:/usr/share/nginx/html -d nginx
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /etc/mysql/data:/var/lib/mysql -v /etc/mysql/data/my.cnf:/etc/mysql/conf.d/my.cnf -d mysql
docker run --name redis1 --privileged=true --restart always -p 6379:6379 -d redis --appendonly yes
5、DockerCompose 基于compose 文件帮助我们快速部署分布式引用
sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
或者下载对应文件,上传linux 机器 cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
dockerRegistry 镜像仓库
使用docker-compose 方式安装
version: '3.0'
services:
registry:
image: registry
volumes:
- ./registry-data:/var/lib/registry
ui:
image: joxit/docker-registry-ui:latest
ports:
- 8080:80
environment:
- REGISTRY_TITLE=XIAOCG
- REGISTRY_URL=http://registry:5000
depends_on:
- registry
忽略https 认证
vim /etc/docker/daemon.json
在json内容里面添加
insecure-registries:["http://xxx.xx.x.x:8080"]
docker-compose up -d
6、自定义构建镜像
Dockerfile 文件命令说明
FROM # 指定创建镜像的基础镜像
ENV # 使用环境变量
COPY # 复制文件到镜像内部使用
RUN # 运行Linux系统的命令使用
EXPOSE # 指定镜像容器监听端口号;发布服务使用
ENTRYPOINT # 指定运行容器启动过程执行命令,覆盖CMD参数
编写Dockerfile 文件
FROM openjdk:11
COPY ./demo-0.0.1-SNAPSHOT.jar /tmp/app.jar
EXPOSE 8099
ENTRYPOINT java -jar /tmp/app.jar
把jar包和Dockerfile 放在同一目下 执行 docker build -t demo:1.0