Docker 笔记
试着进行导入,并备注卡住的部分。
Docker是什么?
一个可以轻松创建虚拟环境的工具。相较于VirtualBox等软件,它更轻便和高速。
安装
首先安装 Docker 社区版。
-
- Install Docker Desktop for Mac
Install Docker Desktop for Windows
Docker Toolbox overview
Windows10 Home Edition では、toolboxも必要でした。
安装完成后,启动Docker并从终端进行确认。
$ docker -v
Docker version 18.09.2, build 6247962
基本的组成
这是一个简略的结构图。
Docker容器是基于Docker镜像创建的。Docker容器是虚拟环境。
可以通过获取事先在DockerHub准备好的Docker镜像,或者通过构建自己创建的Dockerfile文本文件来创建Docker镜像。
创建一个容器并尝试通过浏览器访问。
首先需要确认图像和容器的存在。但是目前两者都不存在。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
创建容器。
$ docker run --name myNginx -d -p 8080:80 nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
fc7181108d40: Pull complete
d2e987ca2267: Pull complete
0b760b431b11: Pull complete
Digest: sha256:96fb261b66270b900ea5a2c17a26abbfabe95506e73c3a3c65869a6dbe83223a
Status: Downloaded newer image for nginx:latest
259abccb75f8af516fc5ff31a29cee018e28d42d654f830302d1d3c0dda4146e
-name(名前): コンテナの名前
-d(デタッチド): バックグラウンドで実行
-p(ポート): コンテナのポートをホスト側に公開
再次检查镜像和容器。Docker镜像已被下载并且容器已被创建和启动。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest f68d6e55e065 4 days ago 109MB
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
259abccb75f8 nginx "nginx -g 'daemon of…" 58 seconds ago Up 57 seconds 0.0.0.0:8080->80/tcp myNginx
当您通过浏览器访问 http://localhost:8080/ 时,页面就会显示出来。
Welcome to nginx!
...
检查集装箱的运作是否正常。
$ docker ps
停止容器
$ docker stop {CONTAINER ID}
如果不需要的话,将Docker镜像和Docker容器不断积累进行删除。
删除容器
$ docker rm {CONTAINER ID}
删除图像
$ docker rmi {IMAGE ID}
Dockerfile からの Build
Dockerfile リファレンス
使用Dockerfile文件创建文件。
FROM centos:7
RUN yum update -y
RUN yum install -y ...
...
移动到包含 Dockerfile 的目录并进行构建。
$ cd {path to Dockerfile}
$ docker build
请见下述中文本地化版本:参考
-
- docker-docs-ja 17.06.Beta
- さくらのナレッジ Docker入門
下面的内容还没有整理。
Docker的IP地址
$ docker-machine env
$ docker-machine ip
创建容器
$ docker run -it ubuntu
访问容器
要访问正在运行的容器,请使用exec命令。
コンテナの停止・削除
$ docker stop $(docker ps -q)
$ docker rm $(docker ps -q -a)
イメージの削除
$ docker rmi $(docker images -q)
docker-compose
# 起動
# -d でコンテナをデーモン化
$ docker-compose up -d
# 停止
$docker-compose down
WordPress -> WordPress是一个开源的内容管理系统。
使用 Docker Compose
./docker-compose.ymlを作成する
version: '3.1'
services:
# mysql ※ 5.7はダメ(2019.06.07)
db:
image: mysql:5.6
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: wwcom999999
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
# wordpress
wordpress:
image: wordpress:latest
restart: always
container_name: wp
ports:
- "8080:80"
depends_on:
- db
volumes:
- ./var/www/html:/var/www/html
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
-
- 创建用于安装的目录
-
- 创建容器所需的目录,以便可以从主机编辑文件。
$ mkdir -p ./var/lib/www
初始化
$ docker-compose up -d
确认IP地址
为了通过浏览器访问,要确定Docker的IP地址。
$ docker-machine ip
192.168.99.100
通过浏览器访问192.168.99.100:8080。
-
- vmware toolbox の設定
-
- Oracle VM VirtualBoxマネージャーから以下を開く
設定 > ネットワーク > 高度 > ポートフォワーディング
以下の設定を追加する。
ホストポート:80
ゲストポート:80
其他
-
- 停止
$ docker-compose stop
再開
$ docker-compose start
停止と削除
$ docker-compose down
確認
$ docker-compose ps
## プラグイン
welcart
)