未来的开发将与Docker一同前进!关于Docker的吸引力
让我们尝试使用Docker进行环境配置!
我想写下我学习Docker一周以来的想法和魅力!
首先,什么是Docker?Docker和Compose有什么区别?我将对其进行解释。
Docker是什么?
Docker是一种软件封装技术,它将软件打包到一个被称为“容器”的包中。
どの環境でも同じよう に動作するようにする技術です。
通过利用这项技术,开发者可以创建一个应用程序,并在中途让朋友们加入。
仲間のPCに元の開発者のイメージをダウンロードしビルドしてコンテナを立ち上げます。
このコンテナには、アプリケーションが動作するために必要なライブラリや言語が
由于所有的东西都已经安装好了
主机必须安装所需的库和语言。
即使没有安装在主机环境下,也可以轻松地进行应用程序的共同开发!!!
太棒了!
Docker Compose和Docker之间的区别是什么?
大致来说!如果Docker运行命令很长或者有多个容器,毫不犹豫地使用Compose会更好!!
解釋以下的不同之處
Docker:容器技术
Docker是一种用于管理单个容器的工具。
进行图像构建、容器的启动、停止和删除等基本操作。
使用Docker-Compose
docker-compose是一种用来同时管理多个容器的工具。
根据docker-compose.yml文件中的配置,同时操作多个容器。
これにより、1コマンドで複数のコンテナが起動できたり止めたり削除したりすることが可能!
Docker Compose会自动将所有容器配置在同一网络中。
容器之间的通信变得更加简单了!太棒了!!!
使用Docker Compose,让命令更简洁!
如果仅使用Dockerfile(使用Ruby和PostgreSQL)执行命令的情况下
docker volume create db-data
docker network create my-network
docker run -d --name=web --network=my-network -p 3000:3000 -v $(pwd):/myapp my_rails_app
docker run -d --name=db --network=my-network -p 5432:5432 -v db-data:/var/lib/postgresql/data postgres:latest
只需要在docker-compose.yml中写入一次,即可满足这种需要长命令的情况,无需重复写入四次命令。
当您重新开始开发并需要启动容器时,您可以通过一个命令来启动!
首先创建一个docker-compose.yml文件。
version: '3.8'
volumes:
db-data
services:
web:
build: .
ports:
- "3000:3000"
volumes:
- .:/myapp
depends_on:
- db
db:
image: postgres:latest
volumes:
- db-data:/var/lib/postgresql/data
docker-compose up
たったこの1コマンドで2つのコンテナを起動できます!
Docker Compose并不仅仅是通过一个指令完成的优点。
在能够看到的情况下,可以将其他人正在做的事情可视化并认识到这一点也是一个优点!
将现有的web应用程序进行docker化。
我尝试将现有的应用程序容器化为docker!
首先,将应用程序的目录更改为当前目录,并添加所需的内容。
touch Dockerfile
touch docker-compose.yml
也需要在 docker-compose.yml 中添加必要的代码!
由于语言等等原因,这一部分会被省略。
使用docker-compose build命令构建镜像,并使用docker-compose up命令启动容器。
通过docker-compose up -d命令可以在后台以detached模式启动。(不会占用终端)
使用docker compose exec web(服务名称)bash 命令进入容器内部的bash。
假设在docker-compose.yml文件中已经写好了关于”it”的部分。
ここからは、Railsの場合になります。
元々DBにはSQLiteを使っていたとします。
今後はポスグレを使うとします。
如果还保持这样的状态,将会出现nodatabase和错误。
在容器内使用”rails db:create”命令创建数据库。
rails db:migrateアプリ内にある migrate ファイルのデータを DB に送ります。
随后会出现 webpacker 错误。
在容器内安装。
使用bundle exec rails webpacker:install和bundle exec rails webpacker:compile。
网络端口设为3000号!
最後に localhost:3000 と検索してアプリが表示されたら成功です!!!!!
最後に、dockerの素晴らしさ
Dockerを学んだり、既存のアプリケーションをDocker化したりする過程は、
对于初次见面的人来说,可能会感到有些困难。
自分はまだまだわからないことはいっぱいありますが最初に比べたら進歩はあります!!
個人的に思う最大の利点
开发环境的一致性很重要!
如果你有过”在测试环境很顺利运作,但在实际环境中却无法运行”的经历,
Dockerはその問題を解決します。Dockerを使えば、開発者のローカルマシン上で動作するものは、
本番環境でも同じように動作します。素晴らしい!!!!
もし万が一PCが壊れてしまったら、、、1から環境構築をするのはとてもとてもとっても大変です。
ですがある程度dockerに慣れていたらdockerを使うのに
下载所需的应用程序,编写代码即可完成。
你可以访问我的GitHub,复制粘贴我以前写的Docker文件和compose.yml文件。
没有任何操作系统错误。
如果你在DockerHub上推送了自己创建的镜像,只需要执行pull命令就可以了!
未来的开发和小型学习中,我们将继续使用Docker!