docker 入门
2021-04-28 本文已影响0人
申_9a33
1.运行第一个容器
docker run -d -p 80:80 docker/getting-started
-
-d
以分离的模式运行容器(在后台) -
-p
将主机的端口80映射到容器中的端口80 -
docker/getting-started
要使用的镜像
2.什么是容器(container)
- 容器只是您计算机上的另一个进程,与主机上的所有进程隔离
3.什么是容器镜像(container image)
- 容器镜像是包含运行程序所需的所有内容(所有依赖项,配置,脚本,二级制文件等)
4.建立应用程序的容器图片(docker build)
- 1.建立
Dockerfile
文件 - 2.使用
docker build
命令构建容器镜像docker build -t getting-started .
-
-t
指定最终镜像名称为getting-started
-
.
指示docker build
命令 在什么地方寻找Dockerfile
- 3.使用
docker run -dp 3000:3000 getting-started
运行刚创建的镜像实例
5.更新应用程序
- 1.修改代码后重新编译
docker build -t getting-started .
生成新的镜像 - 2.移除之前的容器
- 2.1
docker ps
获取当前运行的容器列表 - 2.2
docker stop <the-container-id>
停止容器 - 2.3
docker rm <the-container-id>
删除容器 - 在命令中添加“ force”标志来在单个命令中停止和删除容器docker rm。例如:
docker rm -f <the-container-id>
- 2.4
docker run -dp 3000:3000 getting-started
利用刚才编译的新镜像,运行一个新的容器
- 2.1
6.共享自己的镜像(docker push)
- 1.
docker tag getting-started YOUR-USER-NAME/getting-started
对镜像进行重命名- 1.1
getting-started
为当前镜像名 - 1.2
YOUR-USER-NAME/getting-started
YOUR-USER-NAME确保为你当前的Docker ID
- 1.1
- 2.
docker push YOUR-USER-NAME/getting-started
推送镜像到服务器- 2.1因为我们没有在映像名称中添加标签。如果您未指定标签,则Docker将使用名为的标签latest
-
docker run -dp 3000:3000 YOUR-USER-NAME/getting-started
运行刚推送的应用程序
7.数据持久化 (volume)
- 1.创建一个卷
docker volume create todo-db
docker run -dp 3000:3000 -v todo-db:/etc/todos getting-started
- 启动todo应用程序容器
- 2.1
-v
将创建todo-db
映射到 内部/etc/todos
,这样内部创建的文件,都会在外部todo-db
下面
+3.volume 创建的卷实际地址 (docker volume inspect)
docker volume inspect todo-db
8.启用开发模式容器
docker run -dp 3000:3000 \
-w /app -v "$(pwd):./app" \
node:12-alpine \
sh -c "yarn install && yarn run dev"
- 1.开发模式启动容器
+1.1-dp 3000:3000
分离后台并创建端口映射- 1.2
-w /app
设置命令将运行的工作目录或当前目录
+1.3-v "$(pwd):./app"
将当前目录从容器中的主机绑定挂载到/app
目录中
+1.4node:12-alpine
要使用的图像 - 1.5
sh -c "yarn install && yarn run dev"
启动shell 并运行 yarn install 和 yarn install
- 1.2
- 2.查看容器运行日志
docker logs -f <container-id>
+3.此时修改文件就会实时更行
+4.随时进行您想进行的其他任何更改。完成后,停止容器并使用来构建新映像docker build -t getting-started
.