安装docker
- 先安装依赖,设置软件源
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
- 下载安装docker
yum clean all
yum makecache fast
yum -y install docker-ce
- 启动docker服务,设置开机启动,查看版本
systemctl start docker
systemctl enable docker
docker version
当看到 Client
和 Server
两部分时,说明安装成功。
更改国内镜像源
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 镜像名:tag | docker 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 的仓库就行。
# 登陆,输入账号密码
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
常用命令
- 批量删除 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