安装docker

以 CentOS7 为例

1. 简化安装方法

Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,执行这个脚本后就会自动地将一切准备工作做好,并且把 Docker 的稳定版本安装在系统中。

curl -fsSL get.docker.com -o get-docker.sh
sh get-docker.sh --mirror Aliyun

启动docker

systemctl start docker

2. 一般安装

# 卸载旧的版本
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 安装基本的安装包
$ sudo yum install -y yum-utils
# 设置镜像的仓库
$ sudo yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 阿里云镜像
# 安装docker引擎
yum install docker-ce docker-ce-cli containerd.io # docker-ce 社区版 ee 企业版
# 启动docker
systemctl start docker

docker命令

镜像命令

1. docker images

查看 Docker 中当前拥有哪些镜像

[root@izrz ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
MySQL         5.7.32    f07dfa83b528   11 days ago     448MB
tomcat        latest    feba8d001e3f   2 weeks ago     649MB
nginx         latest    ae2feff98a0c   2 weeks ago     133MB
hello-world   latest    bf756fb1ae65   12 months ago   13.3kB

搜索仓库中的镜像

docker search MySQL

3. docker pull

下载镜像,不写版本标志直接执行,则会下载镜像的最新版本

docker pull MySQL:5.7

4. docker image rm

删除镜像,若是不指定版本,则默认删除的也是最新版本,还可以通过指定镜像 id 进行删除

docker image rm MySQL:5.5

docker image rm bf756fb1ae65

简化版本docker rmi 镜像名:版本标志
删除所有的 MySQL 镜像

docker rmi -f $(docker images MySQL -q)

docker images MySQL -q查询出 MySQL 的所有镜像 id,-q表示仅查询 id,并将这些 id 作为参数传递给docker rmi -f指令,这样所有的 MySQL 镜像就都被删除了

容器命令

1. docker run

通过镜像运行一个容器

docker run -p 8088:8080 --name tomcat01 tomcat:8.0-jre8

-p进行端口映射,第一个 8088 为宿主机端口,第二个 8080 为容器内的端口,外部访问 8088 端口就会通过映射访问容器内的 8080 端口
--name给容器起一个名字

2. docker ps

docker ps -a

将运行和非运行的容器全部列举出来

3. docker rm

docker rm d5b6c177c151

根据id删除容器

4. 启动和停止容器

docker start
docker restart
docker stop
docker kill

5. 容器内部

进入

docker exec -it 容器id /bin/bash

退出

exit

数据卷

Docker 中的数据卷能够实现宿主机与容器之间的文件共享,它的好处在于对宿主机的文件进行修改将直接影响容器,而无需再将宿主机的文件再复制到容器中。本质上是一个目录挂载,将容器内的目录挂载到虚拟机上。

docker run -d -p 8080:8080 --name tomcat01 -v /opt/apps:/usr/local/tomcat/webapps tomcat:8.0-jre8

Q.E.D.