一、Docker安装
查看 CentOS 内核版本
Docker 要求 CentOS 系统的内核版本高于3.10
, 执行如下命令查询 内核版本
uname -r
3.10.0-957.21.3.el7.x86_64
删除旧版本
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装 Docker-ec版
安装依赖包
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
设置仓库地址
-
使用官方仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
-
阿里云地址
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装最新Docker
yum install docker-ce docker-ce-cli containerd.io
指定版本安装
-
通过如下命令 列出可用版本
yum list docker-ce --showduplicates | sort -r
-
指定版本安装
yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
启动Docker
Docker安装后默认是未启动的,可通过如下名启动Docker
systemctl start docker
卸载Docker
删除安装包
yum remove docker-ce docker-ce-cli containerd.io
删除镜像文件
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
镜像加速
由于官方的镜像较慢,可以使用阿里云的镜像加速,执行如下命令即可,
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://1bs4ljno.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
二、Docker容器的使用
Docker客户端
查看 Docker 支持的命令
docker
docker help
查看某个命令的使用帮助
docker run --help
使用容器
获取镜像
docker pull centos
运行容器
docker run -it centos /bin/bash
查看容器
docker ps -a
退出容器
exit
start 启动
docker start <id 或 name>
说明: run 命令和 start命令的区别是:
docker run 命令是通过一个 镜像模板启动一个新的容器
docker start 命令是启动一个已经存在的停止的容器
停止容器
docker stop <ID 或 name>
重启容器
docker restart <ID 或 name>
设置开机自启动
docker container update --restart=always <ID 或 name>
进入容器
在使用 -d
参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:
- docker attach
- docker exec 推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。
attach
docker attach <ID 或 name>
exec
docker exec -it <ID 或 name> /bin/bash
删除容器
docker rm -f <ID 或 name>
三、Docker镜像使用
当运行容器时,如果本地不存在镜像,Docker则自动从镜像库中拉取镜像。
列出本地镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis latest 7faaec683238 9 days ago 113MB
hello-world latest feb5d9fea6a5 3 weeks ago 13.3kB
centos latest 5d0da3dc9764 5 weeks ago 231MB
查找镜像
-
我们可以从 Docker Hub 网站来搜索镜像。
-
通过命令查找镜像
docker search <image>
docker search mysql
拉取镜像
可以通过如下名在镜像仓库中拉取镜像
docker pull <image>:<tag>
docker pull mysql
docker pull mysql:5.7
删除镜像
镜像删除使用 docker rmi 命令,
docker rmi hello-world
docker rmi $(docker images -aq)
- 当删除某个镜像出现如下错误时,可以添加
-f
参数 强制删除镜像
Error response from daemon: conflict: unable to remove repository reference “redis” (must force) - container c92e01e4d913 is using its referenced image 7faaec683238
- 当出现如下错误时,先把停止掉镜像对应的容器后,再添加
-f
进行强制删除
Error response from daemon: conflict: unable to delete 7faaec683238 (cannot be forced) - image is being used by running container c92e01e4d913
创建镜像
在已有镜像上更新
-
下载镜像
docker pull centos
-
更新镜像
docker run -it centos /bin/bash
yum update
yum -y install net-tools
-
提交镜像
使用 docker commit
命令提交刚才安装后的容器,为一个镜像
docker commit -a "whycode" -m "install net-tools" a78275da1084 whycode/centos:v1
通过Dockerfile构建新镜像
使用命令 docker build
, 通过构建Dockerfile
文件,创建一个新的镜像文件
-
创建 Dockerfile 文件
FROM centos
RUN mkdir whycode
RUN yum -y install net-tools
EXPOSE 80
CMD /bin/bash
-
构建
docker build -t whycode/centos:v2 .
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)