1.CentOS Docker 安装
1.1 官方脚本自动安装
Aliyun镜像
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
1.2 手动安装
1.2.1 若有旧版本,先卸载
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.2.2 设置仓库
首先安装yum-config-manager和evice mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
官方源
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
Aliyun源
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
清华源
$ sudo yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
1.2.3 安装 Docker Engine-Community
安装最新版
$ sudo yum install docker-ce docker-ce-cli containerd.io
如果提示接受 GPG 密钥,选是。
安装特定版
1、列出可用版本
$ yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
2、选取可用版本安装
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
1.3 启动Docker
sudo systemctl start docker
运行hello-world验证是否安装正确
$ sudo docker run hello-world
1.4 卸载Docker
删除安装包:
yum remove docker-ce
删除镜像、容器、配置文件等内容:
rm -rf /var/lib/docker
2 使用Docker
2.1 镜像操作
2.1.1拉取镜像
docker pull centos:8
然后通过docker images
命令可以查看到当前本地的镜像:
root@test:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 5 weeks ago 13.3kB
centos 8 5d0da3dc9764 6 weeks ago 231MB
2.1.2 删除镜像
docker rmi hello-world
2.2 容器操作
2.2.1 单纯运行容器一次并关闭
docker run ubuntu:15.10 /bin/echo "Hello world"
输出为Hello world
其中各个参数:
- docker: Docker 的二进制执行文件。
- run: 与前面的 docker 组合来运行一个容器。
- ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。
- /bin/echo “Hello world”: 在启动的容器里执行的命令
2.2.2 启动交互式容器
root@test:~$ docker run -it ubuntu:15.10 /bin/bash
root@0123ce188bd8:/#
各参数:
- -t: 在新容器内指定一个伪终端或终端。
- -i: 允许你对容器内的标准输入 (STDIN) 进行交互。
注意第二行 root@0123ce188bd8:/#,此时我们已进入一个 ubuntu15.10 系统的容器
我们可以通过运行 exit
命令或者使用 CTRL+D
来退出容器。
root@0123ce188bd8:/# exit
exit
root@test:~#
2.2.3 后台模式启动容器
docker run -d --name=java_ssh --privileged centos:8 /usr/sbin/init
各参数:
- -d: 在后台打开容器。
- –name:容器名称
- –privileged:获得打开容器的root权限
- centos:8:用
centos:8
镜像打开容器 - /usr/sbin/init: /usr/sbin/init启动容器之后可以使用systemctl方法,并持续后台运行。
2.2.4 进入后台模式的容器
docker exec -it java_ssh bash
各参数:
- exec: 在已运行的容器中,执行命令,操作对象是容器,如果你要进入已运行的容器,并且执行命令。
- java_ssh:要打开的容器名
- bash:打开后进入终端
2.2.5 查看现存容器
docker ps -a
root@test:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0ddbb63c175e hello-world "/hello" 33 minutes ago Exited (0) 33 minutes ago admiring_yalow
各参数:
CONTAINER ID: 容器 ID。
IMAGE: 使用的镜像。
COMMAND: 启动容器时运行的命令。
CREATED: 容器的创建时间。
STATUS: 容器状态。
状态有7种:
- created(已创建)
- restarting(重启中)
- running 或 Up(运行中)
- removing(迁移中)
- paused(暂停)
- exited(停止)
- dead(死亡)
PORTS: 容器的端口信息和使用的连接类型(tcp\udp)。
NAMES: 自动分配的容器名称。
2.2.6 开始、停止、重启、删除容器
docker start
启动一个或多个已经被停止的容器
docker start java_ssh
**`docker stop停止一个运行中的容器
docker stop java_ssh
**`docker restart 重启容器
docker restart java_ssh
docker rm
删除一个或多个容器。
强制删除容器 db01、db02:
docker rm -f db01 db02
移除容器 nginx01 对容器 db01 的连接,连接名 db:
docker rm -l db
删除容器 java_ssh, 并删除容器挂载的数据卷:
docker rm -v java_ssh
删除所有已经停止的容器:
docker rm $(docker ps -a -q)