Docker实战笔记
一、设置存储库
官网安装地址:Install Docker Engine on CentOS | Docker Documentation
安装yum-utils包(提供yum-config-manager实用程序)并设置稳定的存储库。
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
二、可选:启用每晚或测试存储库
这些存储库包含在docker.repo上面的文件中,但默认情况下是禁用的。您可以在稳定存储库旁边启用它们。以下命令启用每夜存储库。
$ sudo yum-config-manager --enable docker-ce-nightly
要启用测试通道,请运行以下命令:
$ sudo yum-config-manager --enable docker-ce-test
您可以通过运行 带有标志的命令来禁用nightly或test存储库。要重新启用它,请使用该标志。以下命令禁用夜间存储库。
$ yum-config-manager--disable--enable
$ sudo yum-config-manager --disable docker-ce-nightly
三、安装 Docker 引擎
1.安装最新版本的 Docker Engine 和 containerd,或者进入下一步安装特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io
2.如果提示接受 GPG 密钥,请验证指纹是否匹配 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35,如果是,则接受它。此命令会安装 Docker,但不会启动 Docker。它还会创建一个docker组,但是默认情况下它不会将任何用户添加到该组中。
3.要安装特定版本的 Docker Engine,请在 repo 中列出可用版本,然后选择并安装:
- 列出并排序您的存储库中可用的版本。此示例按版本号从最高到最低对结果进行排序,并被截断:
$ yum list docker-ce --showduplicates | sort -r
- 返回的列表取决于启用了哪些存储库,并且特定于您的 CentOS 版本(.el7在本例中由后缀表示)
- 通过其完全限定的包名称安装特定版本,即包名称 (docker-ce) 加上版本字符串(第 2 列),从第一个冒号 (:) 开始,一直到第一个连字符,用连字符 (-) 分隔。例如:docker-ce-18.09.1。
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
- 此命令会安装 Docker,但不会启动 Docker。它还会创建一个 docker组,但是默认情况下它不会将任何用户添加到该组中。
- 启动Doker
- 启动命令。
$ sudo systemctl start docker
- hello-world 通过运行映像来验证 Docker 引擎是否已正确安装。
3.如果遇到报错:docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: TLS handshake
解决办法
docker默认的源为国外官方源,下载速度较慢,可改为国内源
编辑或新建配置文件 /etc/docker/daemon.json
daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"],
"live-restore": true
}
重新启动docker服务
$ systemctl restart docker
然后继续
$ sudo systemctl start docker
参考地址:https://blog.csdn.net/qq_35606010/article/details/104750391
- 后续步骤(可忽略,只是官方参考)
官网地址:Post-installation steps for Linux | Docker Documentation
- 使用Docker安装Java 1.8(温馨提示:Tomcat会自带JDK,但是Jenkins要用)
- docker查看可用jdk
docker search jdk
- 安装1.8版本
docker pull kdvolder/jdk8
- 查看本地镜像
docker images
- 启动并查看镜像
启动:
docker run -di --name=jdk1.8 kdvolder/jdk8
查看:
docker ps
- 进入镜像
docker exec -it 6d0fc81e5cd9 /bin/bash
- 查看版本
java -version
参考链接:Docker安装JDK1.8版本_Jack魏-CSDN博客_docker安装jdk1.8
- 使用Docker安装并启动MySql
- 查看可用版本
docker search mysql
- 这里直接安装5.7版本
docker pull mysql:5.7
- 查看是否安装完成
docker images
- 启动运行镜像
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
- 查看镜像
docker ps
- 进入Mysql并启动服务
docker exec -it f2a9f7c626f8 /bin/bash (f2a9f7c626f8是你的容器ID,也可以填容器名称)
mysql -h localhost -u root -p
- 使用Docker安装并启动Tomcat
- docker下载tomcat,不指定版本则会下载最新版
docker pull daocloud.io/library/tomcat:9.0.0.M27
- 查看本地docker镜像
docker images
- 启动tomcat指定端口(建议直接查看下方 5启动挂载命令)
docker run -d -p 8080:8080 tomcat -d表示后台运行,-p端口映射
- 重启tomcat
docker restart tomcat
启动成功但是不能正常访问,请参考(tomcat9会有该问题,如果用启动挂载就不会了):
Docker 解决tomcat容器启动成功,无法访问的问题_OY-CSDN博客_docker tomcat启动后,远程不能访问
- tomcat启动挂载
docker run --name tomcat -d -p 8080:8080 -v /usr/local/tomcat/packge:/usr/local/tomcat/webapps -v /usr/local/tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml -v /usr/local/tomcat/conf/web.xml:/usr/local/tomcat/conf/web.xml -v /usr/local/tomcat/log:/usr/local/tomcat/logs tomcat(直接给镜像ID也可以)
- 查看tomcat日志
docker logs -f tomcat
- 跨域如何处理(利用Nginx反向代理解决同源问题)?
# 配置反向代理,解决跨域问题
location /plmn {
proxy_pass http://www.plmn.club:8081/plmn;
}
- 使用Docker部署Nginx
- docker下载nginx,不指定版本则会下载最新版
docker pull nginx
- 运行(建议直接查看下方 3启动挂载命令)
docker run -d --name nginx -p 80:80 nginx
安装参考地址:Docker快速入门总结笔记_huangjhai的博客-CSDN博客
安装vim参考地址:Docker容器安装Vim - 简书
- 启动挂载
docker run --name nginx -d -p 80:80 -v /usr/local/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/nginx/vue:/usr/share/nginx/html -v /usr/local/nginx/log:/var/log/nginx nginx
- 设置容器自动启动
docker update --restart=always tomcat
- 启动redis并设置密码
docker run --name redis -p 6379:6379 -d --restart=always 7614ae9453d1 redis-server --appendonly yes --requirepass "Glf924058449/"
- 利用docker-compose管理容器
version: '3.8'
services:
redis: # 服务的名称
restart: always # 代表只要Docker启动,那么这个容器就跟着一起启动
image: redis # 指定镜像路径
container_name: reids # 指定容器名称
command: redis-server --port 6379 --requirepass Glf924058449/ --appendonly yes
ports:
- 6379:6379 # 指定端口号的映射
environment:
TZ: Asia/Beijing # 指定时区
tomcat:
restart: always # 代表只要Docker启动,那么这个容器就跟着一起启动
image: daocloud.io/library/tomcat:9.0.0.M27 # 指定镜像路径
container_name: tomcat # 指定容器名称
ports:
- 8080:8080
environment:
TZ: Asia/Beijing
volumes:
- /usr/local/tomcat/packge:/usr/local/tomcat/webapps - /usr/local/tomcat/conf/server.xml:/usr/local/tomcat/conf/server.xml - /usr/local/tomcat/conf/web.xml:/usr/local/tomcat/conf/web.xml
- /usr/local/tomcat/log:/usr/local/tomcat/logs # 映射数据卷
- 运行docker-compose文件
$ docker-compose up -d
- 几个命令*
- 查看tomcat运行状态:
ps -ef | grep tomcat
- 显示正在运行和停止的容器:
docker ps -a
- Docker进入指定的目录:
docker exec -it b2064b998774 /bin/bash #b2064b998774:你的容器ID
- 退出终端,直接输入exit
- 重新启动已停止的容器
docker start ovcer_the_container
- 重启Docker
systemctl restart docker
- 查看容器的挂载信息
docker inspect tomcat
- 镜像拉取地址
- Docker Hub
- https://hub.daocloud.io/
命令参考地址:docker | Docker Documentation
总学习文档
- 2小时搞定Docker:
Docker实战[搞定Docker只需2小时]_哔哩哔哩_bilibili
- 视频笔记: