环境 centos7.6
docker解决了运行环境和配置问题的软件容器, 方便做持续集成并有助于整体发布的容器虚拟化技术
镜像文件
- image 文件生成的容器实例,本身也是一个文件,称为镜像文件。
容器实例
- 一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器
仓库
- 就是放一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候再从仓库中拉下来就可以了。
1. 安装
1.1 卸载旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.2 设置存储库
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.3 安装 Docker 引擎
yum install docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io-1.4.6 docker-compose-plugin
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
systemctl start docker
docker version
docker run hello-world
1.4 卸载 Docker 引擎
yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
2. 阿里云镜像
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://28myeodl.mirror.aliyuncs.com"] } EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
3 Docker常用命令
3.1 帮助启动类命令
· 启动docker: systemctl start docker
· 停止docker: systemctl stop docker
· 重启docker: systemctl restart docker
· 查看docker状态: systemctl status docker
· 开机启动: systemctl enable docker
· 查看docker概要信息: docker info
· 查看docker总体帮助文档: docker --help
· 查看docker命令帮助文档: docker 具体命令 --help
3.2 镜像命令
· docker images 列出本地主机上的镜像
· docker search 某个XXX镜像名字
· docker pull 某个XXX镜像名字
· docker system df 查看镜像/容器/数据卷所占的空间
· docker rmi 某个XXX镜像名字ID
· docker rmi -f $(docker images -qa) · 删除全部
3.3 容器命令
· docker run [OPTIONS] **IMAGE** [COMMAND] [ARG...]
--name="容器新名字" 为容器指定一个名称;
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行);
-i:以交互模式运行容器,通常与 -t 同时使用;
-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;
也即启动交互式容器(前台有伪终端,等待交互);
-P: 随机端口映射,大写P
-p: 指定端口映射,小写p
· docker run -it centos /bin/bash 在容器内执行/bin/bash命令
· docker ps [OPTIONS]
OPTIONS说明(常用):
-a :列出当前所有正在运行的容器+历史上运行过的
-l :显示最近创建的容器。
-n:显示最近n个创建的容器。
-q :静默模式,只显示容器编号
· docker rm 容器ID 删除已停止的容器
· docker rm -f $(docker ps -a -q) 一次性删除多个容器实例
· docker logs 容器ID · 查看容器日志
· docker top 容器ID 查看容器内运行的进程
· docker inspect 容器ID查看容器内部细节
. docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] docker commit -a "author" -m "首页变化" 341d81f7504f guignginx:v1.0
. docker cp 5eff66eec7e1:/etc/nginx/nginx.conf /data/conf/nginx.conf
# 将镜像保存成压缩包
docker save -o abc.tar mynginx:v1.0
# 别的机器加载这个镜像
docker load -i abc.tar
# 把旧镜像的名字,改成仓库要求的新版名字
docker tag mynginx:v1.0 author/mynginx:v1.0
# 登录到docker hub
docker login
docker logout(推送完成镜像后退出)
# 推送
docker push author/mynginx:v1.0
# 别的机器下载
docker pull author/mynginx:v1.0
4. Docker Compose 安装
sudo curl -L "https://github.com/docker/compose/releases/download/v2.10.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
如果不稳定
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.10.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
将可执行权限应用于二进制文件:
sudo chmod +x /usr/local/bin/docker-compose
创建软链:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
测试是否安装成功:
docker-compose --version
cker-compose version 1.24.1, build 4667896b
4.1 常用命令
docker-compose -h # 查看帮助
docker-compose up # 启动所有docker-compose服务
docker-compose up -d # 启动所有docker-compose服务并后台运行
docker-compose -f docker-compose.yml up -d # 指定yml 启动所有docker-compose服务并后台运行
docker-compose down # 停止并删除容器、网络、卷、镜像。
docker-compose exec yml里面的服务id # 进入容器实例内部 docker-compose exec docker-compose.yml文件中写的服务id /bin/bash
docker-compose ps # 展示当前docker-compose编排过的运行的所有容器
docker-compose top # 展示当前docker-compose编排过的容器进程
docker-compose logs yml里面的服务id # 查看容器输出日志
docker-compose config # 检查配置
docker-compose config -q # 检查配置,有问题才有输出
docker-compose restart # 重启服务
docker-compose start # 启动服务
docker-compose stop # 停止服务
4.2 常用软件yml
5. Dockerfile
FROM openjdk:8-jdk-slim
LABEL maintainer=author
COPY target/*.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
docker build -t java-demo:v1.0 -f Dockerfile .