一、安装前置
docker是一种虚拟化容器技术,基于镜像,可以秒级启动各种容器。
每一种容器都是一个完整的运行环境,容器之间互相隔离。
1.首先要确定内核版本,必须是centos7及以上版本:
cat /etc/redhat-release
2.卸载系统之前的 docker(如果装过的话)
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
3.保证能上外网
4.安装gcc相关依赖
yum -y install gcc
yum -y install gcc-c++
二、开始安装
1.安装 Docker-CE
安装必须的依赖
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
2.设置 docker repo 的 yum 位置
官方源地址比较慢:
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
推荐使用阿里云地址:
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.更新yum软件包索引
yum makecache fast
4.安装 docker,以及 docker-cli
期间出现y/d/N,一直输入y按回车即可。
sudo yum install docker-ce docker-ce-cli containerd.io
出现Complete!即安装成功
5.启动docker
sudo systemctl start docker
6.设置开机自启
sudo systemctl enable docker
7.设置阿里云的docker镜像加速
(1)https://www.aliyun.com/登录阿里云
阿里云控制台中,选择容器镜像服务 ,点击镜像工具,点击镜像加速器。
针对 Docker 客户端版本大于 1.10.0 的用户
您可以通过修改 daemon 配置文件/etc/docker/daemon.json 来使用加速器,也可以使用如下命令:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://t3irn0eu.mirror.aliyuncs.com"]
}
EOF
# 重启服务器
sudo systemctl daemon-reload
sudo systemctl restart docker
# 附:随时更新
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io"
]
}
EOF
8.验证一下吧,此时还没有任何docker镜像启动~
三、docker常用命令
(都需要使用root用户)
官方命令文档
docker镜像地址
docker -v:查看版本(docker version)
sudo docker images:查看docker列表
docker restart [name] :重启映像
----------------- docker ps 查看当前正在运行的容器
----------------- docker ps -a 查看所有容器的状态
----------------- docker start/stop id/name 启动/停止某个容器
----------------- docker attach id 进入某个容器(使用exit退出后容器也跟着停止运行)
----------------- docker exec -ti id 启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)
----------------- docker images 查看本地镜像
----------------- docker rm id/name 删除某个容器
----------------- docker rmi id/name 删除某个镜像
----------------- docker run --name test -ti ubuntu /bin/bash 复制ubuntu容器并且重命名为test且运行,然后以伪终端交互式方式进入容器,运行bash
----------------- docker build -t soar/centos:7.1 . 通过当前目录下的Dockerfile创建一个名为soar/centos:7.1的镜像
----------------- docker run -d -p 2222:22 --name test soar/centos:7.1 以镜像soar/centos:7.1创建名为test的容器,并以后台模式运行,并做端口映射到宿主机2222端口,P参数重启容器宿主机端口会发生改变
docker logs -f id:查看日志
docker run就会启动一个容器,容器跟容器之间是互相隔离的,每一个容器都是一个完整的运行环境。
进入容器的bash控制台:docker exec -it {id/name} /bin/bash
我们可以看到,每个docker都是一个linux系统,所以启动容器时需要将docker的端口映射到linux主机的端口
设置容器自启动:
sudo docker update [id] --restart=always
四、docker run的参数解析
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
参数说明
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
-name:容器名称
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
-d是后台启动
-v:将linux本地文件与docker的指定文件绑定,修改本地文件会同步docker文件,修改配置就方便多了
五、卸载docker
systemctl stop docker
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd