赞
踩
Docker有两个主要版本:docker.io和docker-ce。Docker.io是早期版本的Docker,而docker-ce是Docker社区版(Community Edition)的缩写,是Docker的当前主要版本。
Docker.io与docker-ce之间的最大区别在于支持的平台和版本更新频率。Docker.io支持的平台相对较少,包括Ubuntu、Fedora、Debian等。此外,Docker.io的版本更新频率相对较低,可能会导致在某些情况下出现更新延迟的问题。
相比之下,docker-ce支持更广泛的平台,包括Windows、MacOS、CentOS、RHEL等,并且更新频率更高,包括每个月的安全更新和每季度的功能更新。此外,docker-ce还包括对Swarm等Docker工具的支持,并具有更丰富的社区支持和文档资料。
总之,docker-ce是当前主要版本的Docker,支持更广泛的平台和更高的版本更新频率,具有更多的功能和更丰富的社区支持。
- apt-get install -y docker.io
- # 查看docker状态
- systemctl status docker
- # 如果没有启动,就手动启动
- systemctl start docker
- # 设置开机自启
- systemctl enable docker
如果提示: Package ‘docker.io‘ has no installation candidate
配置阿里云的gpg
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
配置阿里云的镜像
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
再次执行 :apt-get install -y docker.io
设置 Docker 的apt
存储库。
- # Add Docker's official GPG key:
- sudo apt-get update
- sudo apt-get install ca-certificates curl
- sudo install -m 0755 -d /etc/apt/keyrings
- sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
- sudo chmod a+r /etc/apt/keyrings/docker.asc
-
- # Add the repository to Apt sources:
- echo \
- "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
- $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
- sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- sudo apt-get update
安装 Docker 软件包。
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
yum -y install docker
启动docker后台服务:
service docker start
验证是否安装成功:
root@localhost hemi]# docker version
镜像加速
鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://hub-mirror.c.163.com。
新版的 Docker 使用 /etc/docker/daemon.json(Linux)
请在该配置文件中加入(没有该文件的话,请先建一个):
- {
- "registry-mirrors": ["http://hub-mirror.c.163.com"]
- }
1)搜索镜像
可以在Docker Hub主页上搜索镜像,可以通过docker search命令搜索,如:
docker search [OPTIONS] TERM
OPTIONS说明:
[root@localhost hemi]# docker search -s 20 tomcat
其中,
STARTS:镜像仓库收藏数
AUTOMATED:表示是否是自动构建的镜像仓库
2)下载镜像
docker pull [OPTIONS] NAME[:TAG]
OPTIONS说明:
举个栗子
- docker pull java #从Docker Hub中下载最新版本的Java镜像
- docker pull reg.itmuch.com/java:8 #从指定Registry中下载标签为8的Java镜像
3)列出镜像
docker images [OPTIONS] [REPOSITORY[:TAG]]
OPTIONS说明:
举个栗子:
列出本地镜像中REPOSITORY为ubuntu的镜像列表
[hemi@localhost ~]$ docker images ubuntu
4)删除本地镜像
docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS说明:
1)新建并启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明(常用):
如:
- docker run --name mynginx -d nginx:latest
- #使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。
-
- docker run -p 91:80 -v /data:/data -d nginx:latest
- #使用镜像nginx:latest以后台模式启动一个容器,将容器的80端口映射到主机的91端口,主机的目录/data映射到容器的/data。
-
- [hemi@localhost ~]$ docker run -it nginx:latest /bin/bash
- root@b8573233d675:/#
- #使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
2)列出容器
docker ps [OPTIONS]
OPTIONS说明(常用):
3)停止容器
docker stop CONTAINER_ID/CONTAIN_NAME
4)强制停止容器
docker kill CONTAINER_ID/CONTAIN_NAME
5)启动已停止容器
docker start CONTAINER_ID/CONTAIN_NAME
6)重启容器
docker restart CONTAINER_ID/CONTAIN_NAME
7)进入容器
docker exec -it CONTAINER_ID bash
如:
- [hemi@localhost ~]$ docker ps
- CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
- 219371844a81 7f94db72116e "tomcat.sh" 7 seconds ago Up 7 seconds 8009/tcp, 8080/tcp, 0.0.0.0:91->80/tcp zen_kalam
- [hemi@localhost ~]$ docker exec -it 219371844a81 bash
- bash-4.2$
8)删除容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS说明(常用):
提交容器更改保存为新镜像
docker commit -m "change" 202df25a547a mycentos:v5
202df25a547a:容器id mycentos:v5 镜像名:标签
从主机复制到容器sudo docker cp host_path containerID:container_path
从容器复制到主机sudo docker cp containerID:container_path host_path
docker rm `docker ps -a -q` 删除所有容器
- ......
- FROM tomcat
- ENV CATALINA_HOME /usr/local/tomcat
- .......
- #设置时区
- RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
- ......
查看日志:docker logs [OPTIONS] CONTAINER
OPTIONS说明:
-f : 跟踪日志输出
--since :显示某个开始时间的所有日志
-t : 显示时间戳
--tail :仅列出最新N条容器日志
docker logs --tail=10 f8cded9f66e5
docker logs -f f8cded9f66e5
镜像(image)保存到本地
docker save [镜像id]> /path/文件名.tar
例如:docker save 267ffb4c34c2> /home/kangkang/Desktop/dockertest/test.tar
镜像(image)加载到本地docker
把下载好的文件test.tar拷贝到需要加载镜像的电脑中
docker load < /path/文件名.tar
例:docker load < /home/kaka/test.tar
docker image ls 后发现镜像(image)名和版本都为空
用docker tag [镜像id] 镜像名:版本号
docker tag ab67ffb4c97c2 myimagesload:v1.0.1
运行 docker run ab67ffb4c97c2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。