安装docker

  1. 先安装依赖,设置软件源
yum update
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  1. 下载安装docker
yum clean all
yum makecache fast
yum -y install docker-ce
  1. 启动docker服务,设置开机启动,查看版本
systemctl start docker
systemctl enable docker
docker version

当看到 ClientServer 两部分时,说明安装成功。


更改国内镜像源

docker 镜像搜索可以前往:https://hub.docker.com/

但是这个镜像仓库和 maven 仓库一样下载较慢,先配置为国内镜像,修改配置:

 vim /etc/docker/daemon.json

改为如下配置:

{
  "registry-mirrors": [
     "https://registry.docker-cn.com",
     "http://hub-mirror.c.163.com",
     "https://docker.mirrors.ustc.edu.cn",
     "http://hub-mirror.c.163.com"
   ]
}

然后,加载Docker配置 ,重启Docker服务

systemctl daemon-reload
systemctl restart docker.service

镜像操作

操作命令举例说明
检索docker search 关键字docker search tomcat去docker hub上检索镜像的详细信息,如镜像的Tag
拉取docker pull 镜像名:tagdocker pull tomcat:tag是可选的,tag表示版本标签,多为软件的版本,默认是latest
列表docker images [-a]docker images查看所有本地镜像
删除docker rmi 镜像id
docker rmi 镜像名:tag
docker rmi 7b8b75c878d4删除id为7b8b75c878d4的本地镜像
创建镜像docker commit [容器id]docker commit -a shiva 9aa80af66c55-a:作者名;-c: 使用Dockerfile指令来创建镜像 ;-m: 提交信息; -p : 在commit时,将容器暂停。

容器操作

操作命令
根据镜像创建并启动容器(没有端口映射)docker run --name mytomcat1 -d tomcat:latest
查看运行中的容器docker ps
查看所有的容器docker ps -a
停止运行中的容器docker stop 容器id或容器名
启动容器docker start 容器id或容器名
删除容器docker rm 容器id或容器名
根据镜像创建并启动做了端口映射的容器docker run --name mytomcat2 -d -p 8888:8080 tomcat
#说明:-d后台运行
-p将主机的端口映射到容器的一个端口。 主机端口:容器内部的端口
进入容器内部docker exec -it 容器id或容器名 /bin/bash
#说明:-it参数:容器的 Shell 映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器。
/bin/bash:容器启动以后,内部第一个执行的命令。这里是启动 Bash,保证用户可以使用 Shell。
查看容器的日志docker logs 容器名或者容器id

容器操作常用的其实也就2个命令,创建容器具体参数如下:

创建容器

语法:docker run [OPTIONS] IMAGE [COMMAND][ARG...]

例如:docker run -itd --name ds1 -p 44400:22 -p 44403:8081 8ffb01469aba

docker run 参数如下:

  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
  • -i: 以交互模式运行容器,通常与 -t 同时使用
  • -d: 后台运行容器,并返回容器ID
  • --name: 为容器指定一个名称
  • -p: 端口映射,格式为:主机(宿主)端口:容器端口
  • -v: 挂载宿主机文件夹,格式为: 宿主机文件夹:容器文件夹
  • --link: 添加链接到另一个容器
  • -m: 设置容器使用内存最大值;

进入容器

语法: docker exec -it 容器id或容器名 /bin/bash

docker attach 容器id或容器名 也能进入容器,不过退出后,也随之停止容器。


docker hub

创建一个仓库,因为我这里只是上传一些基础镜像,弄个基础 public 的仓库就行。

image-20210923192909298

# 登陆,输入账号密码
docker login
# 先将容器提交成镜像,格式为:docker commit <exiting-Container> <hub-user>/<repo-name>[:<tag>]
docker commit -a "shiva<qianwei4712@163.com>" 58ee1d5fb9aa openjdk8-yz:latest
# 重新打 tag,可以重命名,格式为:docker tag <existing-image> <hub-user>/<repo-name>[:<tag>]
docker tag openjdk8-yz:latest shivashow/yz:jdk8
# 将打完 tag 的镜像上传,格式:docker push <hub-user>/<repo-name>:<tag>
docker push shivashow/yz:jdk8
# 上传成功的镜像可以拉去了
docker pull shivashow/yz:jdk8

image-20210923194352816


常用命令

  • 批量删除 none 镜像 : docker images | grep none | awk '{print $3}' | xargs docker rmi

参考文章

https://baijiahao.baidu.com/s?id=1626633654476933953

https://blog.csdn.net/liqun_super/article/details/88304094

https://www.cnblogs.com/wzz2500/p/11437820.html

https://www.cnblogs.com/luoposhanchenpingan/p/11285392.html

https://www.cnblogs.com/scajy/p/11934144.html

https://www.cnblogs.com/zlgxzswjy/p/10560058.html

https://my.oschina.net/lwenhao/blog/2086037

https://www.cnblogs.com/ruanqj/p/7374544.html