开源的容器引擎
更快的交付应用
应用程序和 基础设施隔离
将基础设置 当做应用程序管理
更快的打包,测试,部署
docker daemon 守护进程:运行在宿主机 docker_host 的后台进程。通过docker客户端与之通信。
client 客户端:用户界面,接受用户命令 和 配置标识,与 deamon通信。 dockerbuild这样的命令。
images: docker镜像,只读模板,系统安装盘有点像,使用docker镜像 可以运行镜像中的程序
container : 容器,镜像的可运行实例,镜像和容器 类和对象。通过docker api 或者 cli命令来启动,移动,删除容器。
registry : docker registry 一个集中存储于分发镜像的服务。
n. 注册;登记处, docker registry 是maven仓库。 docker仓库 就是 jar包的路径,
镜像标签 则可理解为jar包的版本号,也分为公有和私有,最常用的莫过于docker Hub 官方
移除docker,安装yum ,更新yum索引
sudo yum -y remove docker
sudo yum install -y yum-utils
sudo yum makecache fast(下面教程配了阿里云在更新,可以去掉fast这个参数)
启用测试仓库
sudo yum-config-manager --enable docker-testing
sudo yum-config-manager --disable docker-testing
1. 删除已经有的
# Uninstall installed docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
2. 配置阿里docker yum源
# Set up repository
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Use Aliyun Docker
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker
查看docker版本
sudo yum update
yum list docker-ce --showduplicates
#装较旧版本(比如Docker 17.03.2) 时需要指定完整的rpm包的包名,并且加上--setopt=obsoletes=0 参数:
yum install -y --setopt=obsoletes=0 \
docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch
# 或安装Docker较新版本 (比如Docker 18.03.0)
sudo yum install docker-ce-18.03.0.ce
sudo yum install docker-ce #安装最新的版本
# 启动docker
systemctl enable docker
systemctl start docker
systemctl stop docker
docker version
https://www.cnblogs.com/cheyunhua/p/10448380.html
https://blog.csdn.net/zhangbeizhen18/article/details/85239758
卸载docker
yum -y remove docker-engine
rm -rf /var/lib/docker
阿里云镜像加速器
https://homenew.console.aliyun.com/
- docker search java
name 仓库名
description 仓库描述
stars 仓库的受欢迎程度
official 是否为官方仓库
automated 是否自动构建镜像仓库
-
docker pull java
docker pull hello-world
docker pull reg.itmuch.com/java:7
指定想要下载的镜像标签(标签为7),以及docker registry地址(reg.itmuch.com)
解决docker下载失败
记得先用yum update
修改或新增 /etc/docker/daemon.json
vi /etc/docker/daemon.json
{
“registry-mirrors”: [“https://registry.docker-cn.com”,“http://hub-mirror.c.163.com”]
}
systemctl restart docker.service
Docker国内源说明:
Docker 官方中国区
https://registry.docker-cn.com
网易
http://hub-mirror.c.163.com
中国科技大学
https://docker.mirrors.ustc.edu.cn
阿里云
https://pee6w651.mirror.aliyuncs.com
-
docker images
repository 仓库名称
tag 镜像标签
image id 镜像ID
created 创建时间
size 镜像大小
-
docker run hello-word
创建并且启动容器
-d 后台运行
-P 随机端口映射
-p 指定端口映射
- ip:hostPort:containerPort
- ip::containerPort
- hostPort:containerPort
-containerPort
–network 指定网络模式
--network=bridge 默认的网桥
host 宿主机的网络
none 不配置该网络,用户可自定义网络配置
container:NAME_or_ID: 新建的容器使用已经有的容器配置
docker run java /bin/echo ‘hello-world’ 就是用 echo ‘hello-world’
docker run -d -p 91:80 nginx 80端口映射到91
宿主机端口91,容器端口80 开放容器端口 到 宿主机端口
访问:http:localhost:91 即可访问到nginx主页
container
集装箱;容器
-
docker rmi 删除镜像
docker rmi hello-world
docker rim -f $(docker images)
-f 强制删除
docker stop 6789876dffsd (容器的id) 停止容器
docker kill 5444563532er 强制停止容器
docker start ytrer4423423 启动已经停止的容器
docker restart 重启,先是stop 后,start
docker run -d -p 91:80 nginx 80端口映射到91
docker attach 65342334 进入容器 (所有窗口都会显示)
docker inspect --format “{{.State.Pid}}” 4b5c2b5a44fd 通过container_id查到pid
nsenter --target 7049 --mount --uts --ipc --net --pid 进入
docker rm 65423545 删除docker , 只能已停止的, -f 是强制删除
docker rm -f ${docker ps -a -q}
-*a* :显示所有的容器,包括未运行的。
-q :静默模式,只显示容器编号。
docker仓库地址
-
docker 自己的地址
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo -
aliyun 的地址
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -
参考我的链接:
https://blog.csdn.net/qq120631157/article/details/104302882
yum list 和 docker version
yum list docker-ce
docker-ce.x86_64 3:20.10.6-3.el8
yum list docker-ce --showduplicates
docker-ce.x86_64 3:20.10.5-3.el8 docker-ce-stable
docker-ce.x86_64 3:20.10.6-3.el8 docker-ce-stable
[root@localhost ~]# docker version
Client: Docker Engine - Community
Version: 20.10.6
API version: 1.41
Go version: go1.13.15
Git commit: 370c289
Built: Fri Apr 9 22:44:36 2021
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.6 #引擎版本
API version: 1.41 (minimum version 1.12) #API
Go version: go1.13.15 #go版本
Git commit: 8728dd2 #提交记录
Built: Fri Apr 9 22:43:02 2021 #构建时间,今年4月9号 周五
OS/Arch: linux/amd64 #64位
Experimental: false
containerd:
Version: 1.4.4 #容器版本
GitCommit: 05f951a3781f4f2c1911b05e61c160e9c30eaa8e
runc:
Version: 1.0.0-rc93 #运行版本
GitCommit: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
docker-init:
Version: 0.19.0 #docker初始化
GitCommit: de40ad0
Apr
/ˌeɪ piː ˈɑːr/ 全球(英国)
简明 牛津 新牛津 韦氏 柯林斯 例句 百科
abbr. 四月(April)
周五 /zhōu wǔ/
简明 例句 百科
Fri(Friday)
docker run hello-word
创建并且启动容器
-d 后台运行
-P 随机端口映射
-p 指定端口映射
-
ip:hostPort:containerPort
-
ip::containerPort
-
hostPort:containerPort
-containerPort
–network 指定网络模式
–network=bridge 默认的网桥
-
host 宿主机的网络
-
none 不配置该网络,用户可自定义网络配置
-
container:NAME_or_ID: 新建的容器使用已经有的容器配置
实例
docker run java /bin/echo ‘hello-world’ 就是用 echo ‘hello-world’
docker run -d -p 91:80 nginx 80端口映射到91
- 宿主机端口91,容器端口80 开放容器端口 到 宿主机端口
访问:http:localhost:91 即可访问到nginx主页