施甸网站建设青岛网站建设机构
Docker
- 一、docker常用命令
 - docker ps 格式化输出
 - Linux设置命令别名
 
- 二、数据卷
 - 相关命令
 - 挂载到默认目录(/var/lib/docker)
 - 挂载到本地目录
 
- 三、自定义镜像
 - Dockerfile
 - 构建镜像的命令
 
- 四、网络
 - 自定义网络
 
- 五、DockerCompose
 - 相关命令
 
一、docker常用命令

docker ps 格式化输出
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}\t{{.Status}}"
 
Linux设置命令别名
编辑此文件
vi ~/.bashrc
 
alias [别名]=[需要别名的命令]
注意,等号两边不要空格,若命令包含空格,则一定要加 ‘ ’
刷新生效
source ~/.bashrc
 
举个例子:
 
二、数据卷
在docker容器中,容器只包含可运行的最小环境,在容器不能使用vi命令进行编辑,因此通过数据卷把容器中的文件挂载到宿主机,实现双向数据绑定。
- 数据卷是一个虚拟目录,方便操作容器内文件
 - -v 数据卷名:容器目录

 
相关命令

挂载到默认目录(/var/lib/docker)

挂载到本地目录

 举个例子:
docker运行mysql镜像

三、自定义镜像
镜像结构:
 
Dockerfile

 举个例子:
 
构建镜像的命令

 举个例子:

四、网络
当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器都会连接到这个虚拟网桥上。虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。
 注意:网桥分配的ip地址是随机的,每次容器启动可能分配的ip地址不相同。
 
自定义网络
自定义网络会创建一个新的虚拟网桥,容器之间可以通过容器名相互访问,不再受ip地址变化而影响访问。
 
 容器加入自定义网络的两种方式:
- 在容器创建时,可以直接加入网络。

 - 在容器已经运行后,使用命令行加入
 
docker network connect 【网络】【容器名】
 
举个例子:
 
五、DockerCompose
通过一个yml文件,可快速构建项目。
 
 和docker run的语法相比较:
 
相关命令

 举个例子:
[root@long java-jar-web-project-docker]# cat docker-compose.yml 
version: '3'                                     # Docker-Compose版本
services: web:build:                                   # Jdk运行环境使用Dockerfile文件context: ./web-servicedockerfile: Dockerfileports:                                   # 端口映射  9999 -> 9999- '9999:9999'container_name: web_db                	 # 容器名volumes:- './jar:/home/jar_home'             # 映射路径, 将主机的 ./jar 路径映射到容器内的/home/jar_homedepends_on:       						 # 执行顺序- 'redis'- 'mysql'networks:								 # 绑定ip地址extnetwork:ipv4_address: 175.20.0.4mysql:       								 # mysql 同上environment:MYSQL_ROOT_PASSWORD: 123456MYSQL_USER: testMYSQL_PASS: testimage: mysql:5.7networks:extnetwork:ipv4_address: 175.20.0.2container_name: mysql_dbrestart: alwaysvolumes:- './mysql-service/db:/var/lib/mysql'- './mysql-service/conf/my.cnf:/etc/my.cnf'- './mysql-service/init:/docker-entrypoint-initdb.d/'ports:- '6606:3306'redis:  									 # redis restart: alwaysimage: redis 							 # redis镜像container_name: redis_db    			 # redis容器名字command: redis-server --requirepass 123456 --appendonly yes    # redis容器密码,开启持久化networks:								 # 绑定ip地址extnetwork:ipv4_address: 175.20.0.3ports:									 # 端口映射- '6609:6379'volumes:   								 # 将本地 ./redis-service/db 映射到 容器中的 /data 目录- './redis-service/db:/data'
networks:extnetwork:ipam:config:- subnet: 175.20.0.0/16 
后记
 👉👉💕💕美好的一天,到此结束,下次继续努力!欲知后续,请看下回分解,写作不易,感谢大家的支持!! 🌹🌹🌹
