有些Docker知识,还是蛮有用的,记录下。
一. 如何进入某个容器
docker exec -it 容器名 /bin/bash
这样进入之后,如果exit出来,容器不会退出。
二. 查看容器操作系统
cat /etc/issue
三. 查看容器是否Docker环境
1、是否存在.dockerenv文件
- docker环境下存在:ls -alh /.dockerenv 文件
# ls -alh /.dockerenv
-rwxr-xr-x 1 root root 0 Oct 22 15:28 /.dockerenv
- 非docker环境,没有.dockerenv文件
2、查询系统进程的cgroup信息
- docker环境下 cat /proc/1/cgroup,可以看到冒号后面有docker字样。
# cat /proc/1/cgroup
14:name=systemd:/docker/86b55d835b8e74cbea7f48b45316c9c06b1db2939daf34bc759c34abd7d288e3
13:rdma:/
12:pids:/docker/86b55d835b8e74cbea7f48b45316c9c06b1db2939daf34bc759c34abd7d288e3
11:hugetlb:/docker/86b55d835b8e74cbea7f48b45316c9c06b1db2939daf34bc759c34abd7d288e3
10:net_prio:/docker/86b55d835b8e74cbea7f48b45316c9c06b1db2939daf34bc759c34abd7d288e3
9:perf_event:/docker/86b55d835b8e74cbea7f48b45316c9c06b1db2939daf34bc759c34abd7d288e3
8:net_cls:/docker/86b55d835b8e74cbea7f48b45316c9c06b1db2939daf34bc759c34abd7d288e3
7:freezer:/docker/86b55d835b8e74cbea7f48b45316c9c06b1db2939daf34bc759c34abd7d288e3
6:devices:/docker/86b55d835b8e74cbea7f48b45316c9c06b1db2939daf34bc759c34abd7d288e3
5:memory:/docker/86b55d835b8e74cbea7f48b45316c9c06b1db2939daf34bc759c34abd7d288e3
4:blkio:/docker/86b55d835b8e74cbea7f48b45316c9c06b1db2939daf34bc759c34abd7d288e3
3:cpuacct:/docker/86b55d835b8e74cbea7f48b45316c9c06b1db2939daf34bc759c34abd7d288e3
2:cpu:/docker/86b55d835b8e74cbea7f48b45316c9c06b1db2939daf34bc759c34abd7d288e3
1:cpuset:/docker/86b55d835b8e74cbea7f48b45316c9c06b1db2939daf34bc759c34abd7d288e3
- 非docker环境下cat /proc/1/cgroup,冒号后面没有docker字样。
12:freezer:/
11:hugetlb:/
10:pids:/init.scope
9:devices:/
8:rdma:/
7:memory:/init.scope
6:cpu,cpuacct:/
5:net_cls,net_prio:/
4:perf_event:/
3:cpuset:/
2:blkio:/
1:name=systemd:/init.scope
四. 查看和删除镜像方法
- 查看镜像
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ceph/daemon latest-luminous a5b94691cc5d 21 months ago 728MB
ceph/daemon latest-mimic 8e3e2bbd7119 21 months ago 714MB
- 删除镜像
docker rmi ceph/daemon:latest-luminous
或者知道镜像ID,也可以这样
docker rmi a5b94691cc5d
五. 导出导入本地镜像
- 导出本地镜像
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 7faaec683238 13 months ago 113MB
ceph/daemon latest-luminous a5b94691cc5d 21 months ago 728MB
ceph/daemon latest-mimic 8e3e2bbd7119 21 months ago 714MB
执行命令:比如IMAGE ID
=a5b94691cc5d,如果不指定对应的tag,那么到时候导入镜像就会变成none,所以这里我指定了ceph/daemon:latest-luminous
格式:
docker save -o 输出的文件名 tag名
例子:
docker save -o ceph-latest-luminous.tar ceph/daemon:latest-luminous
- 导入到新机器的docker镜像
docker load < ceph-latest-luminous.tar
六. 导出当前容器
- 导出本地某个容器
$ docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7691a814370e ubuntu:18.04 "/bin/bash" 36 hours ago Exited (0) 21 hours ago test
$ docker export 7691a814370e > ubuntu.tar
- 导入容器快照到本地镜像
$ cat ubuntu.tar | docker import - test/ubuntu:v1.0
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
test/ubuntu v1.0 9d37a6082e97 About a minute ago 171.3 MB
七. Docker配置文件
当您下载安装的Docker Version不低于1.10时,建议通过daemon config进行配置。
如果你还没成功启动过Docker服务,你可以手工先创建配置文件。
# mkdir -p /etc/docker/
# touch /etc/docker/daemon.json
- 使用配置文件/etc/docker/daemon.json,配置Docker一些常用配置。
# vim /etc/docker/daemon.json
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
],
"bip": 172.18.0.1/16,
"data-root": "/data01/docker"
}
配置项说明:
registry-mirrors
:镜像加速器,提升下载镜像速度。可配置多个bip
:容器的IP网段,这里主要是有时候网段冲突,为避免生成的docker0网卡导致本地路由冲突,可以进行自定义配置。data-root
: 镜像、容器的存储路径,默认是/var/lib/docker
。旧版本是使用graph
,具体根据你的版本来选择配置项参数名。
附录:如何手工删除Docker0网桥的IP,比如默认是172.17.0.1 如何改成172.17.18.0.1/16。
# yum install bridge-utils -y
# ip link set dev docker0 down
# brctl delbr docker0
# iptables -t nat -F POSTROUTING
# brctl addbr docker0
# ip addr add 172.18.0.1/16 dev docker0
# ip link set dev docker0 up
# systemctl daemon-reload && systemctl start docker
- 读取配置,重启服务
systemctl daemon-reload && systemctl start docker
本文没有授权给任何组织、企业和个人转载,未经作者允许禁止转载!
欢迎关注我的公众号testerzhang,原创技术文章第一时间推送。