Docker 简单使用
Docker Desktop的简单使用,最简单的是用图形化界面统一操控。
Containers 容器,Images 镜像,Volumes 卷(分区)
启动容器:
docker run -d -p 80:80 docker/getting-started
- -d - run the container in detached mode (in the background)
-p 80:80 - map port 80 of the host to port 80 in the container
docker/getting-started - the image to use
Build镜像:
docker build -t getting-started .
getting-started 镜像名
-t 给镜像起的名字
. 指示Dockerfile所在的位置,. 即当前文件夹
Volume:
docker volume create todo-db 创建一个名为todo-db,volume的目的是模拟一个公共的磁盘
docker run -dp 3000:3000 -v todo-db:/etc/todos getting-started
-v 表示这个容器使用volume
todo-db 是volume的名字
/etc/todos 是volume 挂载(mount)的位置
Network:
docker network create todo-app 创建一个名为todo-app的网络
docker run -d --network todo-app --network-alias mysql --platform linux/amd64 -v todo-mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=secret -e MYSQL_DATABASE=todos mysql:5.7
- 在todo-app的网络空间中创建容器,并指定一个别名 mysql (DNS 查看时会用到)
Docker-compose
由于同一项目使用多个容器并且配置环境变量非常麻烦,使用docker-compose可以将所有配置收敛到一处。
在项目的根目录下增加一个文件docker-compose.yml,内容如下:
version: "3.8"services:
app:
image: node:12-alpine
command: sh -c "yarn install && yarn run dev"
ports:
- 3000:3000
working_dir: /app
volumes:
- ./:/app
environment:
MYSQL_HOST: mysql
MYSQL_USER: root
MYSQL_PASSWORD: secret
MYSQL_DB: todos
mysql:
image: mysql:5.7
volumes:
- todo-mysql-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: todosvolumes:
todo-mysql-data:
docker-compose up -d 使用这个命令启动容器,-d代表着容器后台运行。
docker-compose down --volumes 停止容器,--volumes代表着回收卷。
常用命令:
docker ps 看运行中的容器
docker stop <the-container-id>
docker rm <the-container-id>
docker exec <container-id> cat /data.txt 执行该容器中的cat命令