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
后记
👉👉💕💕美好的一天,到此结束,下次继续努力!欲知后续,请看下回分解,写作不易,感谢大家的支持!! 🌹🌹🌹