docker 环境 CentOS 8.1
Docker 修改镜像源地址
- Docker 官方中国区
https://registry.docker-cn.com
- 网易
http://hub-mirror.c.163.com
- ustc --中国科学技术大学
https://docker.mirrors.ustc.edu.cn
/etc/docker/daemon.json
如果没有daemon.json文件 创建
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
重启docker
systemctl restart docker
启动 docker
systemctl start docker
守护进程重启
sudo systemctl daemon-reload
重启docker服务
systemctl restart docker
重启docker服务
sudo service docker restart
关闭docker 服务
docker service docker stop
关闭docker
docker systemctl stop docker
拉取镜像
docker pull tomcat:jdk8-openjdk
docker pull tomcat:8.5.55-jdk8-openjdk
查看镜像
docker images
显示正在运行的容器:
[root@localhost HMK]# docker ps
显示所有容器,包括未运行的:
[root@localhost HMK]# docker ps -a
运行镜像
docker run -d --name tomcat_test -p 8088:8080 7254ff7719c0
docker run -d --name tomcat_test -v /etc/localtime:/etc/localtime -p 2080:8080 tomcat:latest
docker run -d --name tomcat_contract -p 8088:8080 -v /home/tomcat_contract/conf:/usr/local/tomcat/conf -v /home/tomcat_contract/webapps:/usr/local/tomcat/webapps -v /home/tomcat_contract/logs/:/usr/local/tomcat/logs -v /home/tomcat_contract/logsRoot/:/usr/local/tomcat/logsRoot 7254ff7719c0
–name 容器名称
-p 8088:8080 8088 是宿主机端口 8080是tomcat容器端口 8080映射到2080
tomcat:latest 镜像名称及版本
-v /etc/localtime:/etc/localtime 容器使用宿主机时间、时区
-v 挂载目录 /home/tomcat/conf 宿主机的配置目录,/usr/local/tomcat/conf 容器的目录
:前面是宿主机的目录,后面是容器里面的目录
-d:表示指定容器后台运行
8e4c7e070ba2 镜像id
进入容器
docker exec -it mysql_docker /bin/bash
docker exec -it mcyl_test0 /bin/bash
docker exec -it zilliz_search_images_demo /bin/bash
当前目录还是在tomcat镜像生成的容器目录下,可以使用:ctrl+p+q不退出容器的方式返回到宿主机目录下
出容器
ctrl+p+q
使用:ctrl+p+q不退出容器的方式返回到宿主机目录下
重启容器
docker restart 容器ID
docker restart 54bad744146a
停止容器
docker stop 容器id
docker stop 31290cf1cc00
启动一个已经停止的容器实例
docker start 容器名称 或者 容器id tomcat_contract
docker start 31290cf1cc00
删除容器
可使用 -f 参数强制删除容器
docker rm mcyl_test0
查看所有的容器
docker ps -a
查看运行中的容器
docker ps
liunx 命令
重命名文件夹
mv webapps webapps2
mv webapps.dist/ webapps
使用docker commit命令将修改后的容器生成新的镜像
docker commit命令详解:
作用:将运行着的容器映射成新的镜像
格式: docker commit -a='作者-这个随意写' -m='‘修改内容--随意写' 容器名称或者ID 新生成镜像的名称
例子:
docker commit -a='lzhang2019' -m='修改主页404错误' e8a903b0d543 tomcat-8.5.55-jdk8-openjdk-dev:v0.1
导出images
保存镜像
docker save 命令 将镜像保存成一个文件。
docker save -o tomcat-8.5.55-jdk8-openjdk-dev-v0.1.tar tomcat-8.5.55-jdk8-openjdk-dev:v0.1
-o 输出文件名称
tomcat-8.5.55-jdk8-openjdk-dev:v0.1 镜像的名称和tag
2)我们还可以同时将多个 image 打包成一个文件,比如下面将镜像库中的 postgres 和 mongo 打包:
docker save -o images.tar postgres:9.6 mongo:3.4
载入镜像
使用 docker load 命令则可将这个镜像文件载入进来。
docker load < hangge_server.tar
从容器拷贝文件到宿主机
docker cp 容器名:容器中要拷贝的文件名及其路径 要拷贝到宿主机里面对应的路径
拷贝容器中 tomcat的conf目录 到 宿主机 的 home/tomcat 目录下
docker cp 16d0e13769a8:/usr/local/tomcat/conf /home/tomcat_contract/
拷贝容器中 tomcat的webapps目录 到 宿主机 的 home/tomcat 目录下
docker cp 827e39c506b1:/usr/local/tomcat/webapps /home/tomcat_contract/
删除images
使用 docker load 命令则可将这个镜像文件载入进来。
docker rmi 6e07337dc2a2
实时日志
docker logs -f --tail=100 mcyl_test0
查看容器的详细信息
docker inspect mysql_docker
docker inspect mcyl_test0
用Dockerfile 创建镜像
docker build -t runoob-ubuntu:v1 .
docker build -t mcyl-vue:v1.0 .
用户定义的网桥和默认网桥之间区别
1、用户定义的网桥可在容器之间提供自动DNS解析。
2、用户定义的桥可提供更好的隔离。
3、容器可以随时随地从用户定义的网络连接和分离。
4、每个用户定义的网络都会创建一个可配置的网桥
5、默认网桥网络上的链接容器共享环境变量。
创建用户定义的网桥网络
使用该docker network create
命令。
$ docker network create my-net
删除用户定义的网桥网络
使用该docker network rm
命令。如果容器当前已连接到网络, 请先断开它们的连接 。
$ docker network rm my-net
将容器连接到用户定义的桥
创建新容器时,可以指定一个或多个--network
标志。本示例将Nginx容器连接到my-net
网络。它还将容器中的端口80发布到Docker主机上的端口8080,以便外部客户端可以访问该端口。连接到my-net
网络的任何其他容器都可以访问该my-nginx
容器上的所有端口,反之亦然。
$ docker create --name my-nginx
--network my-net
--publish 8080:80
nginx:latest
要将运行中的容器连接到现有的用户定义的网桥,请使用以下 docker network connect
命令。以下命令将一个已经在运行的my-nginx
容器连接 到一个已经存在的my-net
网络:
$ docker network connect my-net my-nginx
docker network connect my-net mysql_docker
docker network connect my-net mcyl_test0
断开容器与用户定义的桥的连接
要将运行中的容器与用户定义的网桥断开连接,请使用以下docker network disconnect
命令。以下命令将my-nginx
容器与my-net
网络断开连接。
$ docker network disconnect my-net my-nginx