Docker 基础使用
1. Docker 安装&卸载
1.1 虚拟机安装
1.2 环境准备
- 关闭防火墙
systemctl stop firewalld - 禁止防火墙
systemctl disable firewalld - 关闭SELinux
vi /etc/selinux/config
修改SELINUX=disabled
重启reboot - 安装iptables
yum -y install iptables-services - 启动iptables
systemctl start iptables - 使能iptables
systemctl enable iptables - 清除防火墙规则
iptables -F - 保持防火墙规则
service iptables save - 更新系统
yum -y update
重启reboot
1.3 离线rpm安装docker
经rpm包拷贝到一个目录
[root@localhost ~]# cd docker
[root@localhost docker]# ll
total 19096
-rw-r--r-- 1 root root 19521288 May 24 03:13 docker-ce-17.03.0.ce-1.el7.centos.x86_64.rpm
-rw-r--r-- 1 root root 29108 May 24 03:13 docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch.rpm
1.3.1 执行安装
yum -y install *
1.3.2 启动
systemctl start docker
systemctl enable docker
systemctl status docker
1.3.3 测试docker
docker run hello-world
如果报错一般是镜像下载失败,需要配置镜像加速
1.3.4 配置镜像加速
[root@localhost docker]# pwd
/etc/docker
[root@localhost docker]# ll
total 8
-rw-r--r-- 1 root root 105 May 24 04:49 daemon.json
-rw------- 1 root root 244 May 24 03:19 key.json
[root@localhost docker]#
修改daemon.json(没有自己创建该文件)
{
"registry-mirrors":["http://hub-mirror.c.163.com"]
}
修改完后执行
systemctl daemon-reload
systemctl restart docker
1.4 卸载Docker
要确保容器停止docker container stop xxx,docker rm xxx,docker停止systemctl stop docker之后,再执行下面操作
1.4.1 yum list installed|grep docker
[root@localhost docker]# yum list installed|grep docker
docker-ce.x86_64 17.03.0.ce-1.el7.centos @/docker-ce-17.03.0.ce-1.el7.centos.x86_64
docker-ce-selinux.noarch 17.03.0.ce-1.el7.centos @/docker-ce-selinux-17.03.0.ce-1.el7.centos.noarch
1.4.2 yum -y remove
yum -y remove docker-ce-selinux.noarch
yum -y remove docker-ce.x86_64
1.4.3 再次查看
[root@localhost docker]# yum list installed|grep docker
[root@localhost docker]# docker
-bash: /usr/bin/docker: No such file or directory
2. 镜像和容器基本操作
2.1 docker信息
docker info
[root@localhost docker]# docker info
Containers: 0
...
Images: 0
Server Version: 17.03.0-ce
...
Registry Mirrors:
http://hub-mirror.c.163.com
Live Restore Enabled: false
2.2 镜像操作
2.2.1 查询镜像
docker search tomcat
[root@localhost docker]# docker search tomcat
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
tomcat Apache Tomcat is an open source implementa... 2736 [OK]
...
2.2.2 镜像拉取
docker pull ubuntu:16.04
$ docker pull [选项] [Docker Registry 地址[:端⼝]/]仓库名[:标签]
2.2.3 镜像查看
docker images
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 16.04 005d2078bdfa 4 weeks ago 125 MB
...
2.2.4 运行镜像生成容器
docker run ubuntu:16.04
[root@localhost docker]# docker run -it --rm ubuntu:16.04 /bin/bash
root@71b85e29f790:/# cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.6 LTS (Xenial Xerus)"
...
-d 后台运行
-it交互式终端操作
--rm 容器退出后便被删除
2.2.5 删除本地镜像
$ docker image rm [选项] <镜像1> [<镜像2> ...]
$ docker rmi 镜像名
2.3 磁盘使用查看
docker system df
[root@localhost docker]# docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 2 2 124.7 MB 0 B (0%)
Containers 3 0 0 B 0 B
Local Volumes 0 0 0 B 0 B
2.4 容器操作
2.4.1 启动已终止的容器
docker container start
2.4.2 查看容器
docker ps
docker container ls
docker ps -a
docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
16d80ed1acd8 ubuntu:16.04 "/bin/bash" 58 seconds ago Up 58 seconds zealous_dijkstra
docker ps 和 docker container ls 一样;docker ps -a 和 docker container ls -a 一样
2.4.3 终止容器
docker container stop
2.4.4 重启容器
docker container restart
2.4.5 删除容器
docker container rm
docker rm
2.4.6 进入容器
docker exec -it
[root@localhost docker]# docker run -dit ubuntu:16.04
16d80ed1acd8903e91491ac5c9b50a640dc6059e3bfc8030531a49bd54211637
[root@localhost docker]# docker exec -it 16d80ed1acd8 bash
root@16d80ed1acd8:/# ls
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@16d80ed1acd8:/# exit
exit