Linux中部署Docker环境;Docker常用操作
一,部署Docker环境
官网手册:CentOS | Docker Docs
1.1、查看一下Linux内核版本
uname -r
要求3.10版本及以上。
2.2、卸载老版本docker,避免产生影响
如果服务器安装过docker,没有卸载再次安装会导致安装失败,首先要卸载老版本(咱们没安装过docker,可以不需要这个操作,不过可以试一下。)
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1.3、升级 yum 和 配置源
yum工具可以安装软件,安装docker时需要更多工具,操作系统自带不够,所以要升级。
源是 安装软件时找的软件安装包,需要将docker的源(安装包)添加到yum中。
##执行第一个命令,给yum升个级
yum install -y yum-utils
##执行的第二个命令 【一次不成功,多执行两次】 (国外的)
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#配置源也可以先换成下面的再执行命令2:
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.4、安装指定版本的docker
安装:20.10.8版本
#安装指定版本的[命令公式]:
yum install --setopt=obsoletes=0 docker-ce-<VERSION_STRING> docker-ce-selinux-<VERSION_STRING>.noarch
#具体安装命令:
yum install --setopt=obsoletes=0 docker-ce-20.10.8-3.el7 docker-ce-selinux-20.10.8-3.el7.noarch
2.5、安装成功
2.6、启动服务验证一下
# 执行命令1:启动docker服务
systemctl start docker
# docker开机自启
systemctl enable docker
# 运行hello-world程序(官方自带镜像)
docker run hello-world
解决网址如下: Docker运行hello-world镜像失败或超时_unable to find image 'hello-world:latest' locally -CSDN博客
首先:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://docker.m.daocloud.io",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
systemctl status docker
然后
docker info
最后
docker run hello-world
注:出错可能是网络原因,尝试多运行几次
二,Docker常用操作
操作汇总:
2.1、查看本地镜像
docker images
REPOSITORY:镜像的名字
TAG:镜像标签,可以通过标签指定版本号
IMAGE_ID:镜像的唯一标识
CREATED:创建镜像的时间
SIZE:镜像大小
2.2、用命令查指定镜像
docker search 镜像名称
2.3、拉取镜像
docker pull tomcat:8.0
2.4、查看容器
# 【查看当前正在运行的容器】
docker ps
# 【查看所有容器,包括运行中的和未启动的】
docker ps -a
CONTAINER_ID:容器的唯一标识
IMAGE:容器对应的镜像
COMMAND:容器启动执行的命令
CREATED:创建容器的时间
STATUS:容器的当前状态
PORT:容器的端口号
NAMES:容器的名字,自定义。名字不允许重复,无论容器的状态是运行还是停止。名字也是唯一的,操作容器时可以用container_id也可以用名字。
2.5、移除容器
先多启动几次tomcat镜像为记下来移除做准备:
# rm是移除容器
docker rm 容器id或名字
按照id移除时可以不把id写全,docker会根据输入模糊匹配,如果只匹配到一个,那么移除,匹配多个不做任何操作。
# rmi是移除镜像
docker rmi 镜像id或名字:[标签]
移除镜像时,id的规则也符合容器操作的规则,模糊匹配。 如果镜像对应的容器存在(正在运行),不能移除镜像,需要先把所有容器都移除才能移除镜像。
2.6、创建 容器
# docker run 自定义个名字 镜像名字或id:标签
# docker run tomcat8 tomcat:8.0
# tomcat启动还要添加其它指令,以保证可以正常访问到tomcat,并且不占用控制点,在后台运行
docker run -p 8080:8080 -d --name tomcat8 tomcat:8.0
run:第一次启动容器是要用run命令
-p:端口映射,将虚拟机的端口号映射到容器上(虚拟机端口号:容器端口号)
-d:后台运行
--name:给容器取个名字
2.7、启动Tomcat容器
# 启动 docker start 容器名称或id
docker start tomcat8
# 停止 docker stop 容器名称或id
docker stop tomcat8
# 重启 docker restart 容器名称或id
docker restart tomcat8
start和run的区别
-
run是在第一次启动时执行,准确来说是创建一个容器
-
start是启动已经存在的容器
-
start不需要想run一样写多个参数及配置,会自动按照run时的配置和命令启动
2.8、进入容器内
# 进入容器内部 docker exec -it 容器名称或id /bin/bash
docker exec -it tomcat8 /bin/bash
exec:进入容器的命令
-it:是由-i和-t组成的,-i是交互方式,-t是提供一个终端
/bin/bash:指定命令的路径和方式(就是该路径下有linux命令的可识别文件。)
2.9、Tomcat启动后404问题(无)
创建的Tomcat容器的webapps目录下可能没有ROOT工程,这样会导致访问时出现404问题,可以进入容器后,从webapps.dist目录下的ROOT工程复制到webapps中。(目前版本已经不存在404问题了)
2.10、退出容器+查看容器日志
退出容器可以用ctrl+d,也可以执行exit命令
docker日志查看
# docker logs 容器名字或id -f -n 数字
docker logs tomcat8 -f -n 10
-f:日志持续输出,会时时输出产生的日志
-n:输出倒数X条日志