$ docker inspect mysql
埠對映
$ docker run -itd -p 宿主機埠號:容器埠號
# 例子:
$ docker run -itd --name ben-nginx -p 80:80 nginx # 埠對映
$ curl 127.0.0.1:80
檔案掛載
$ docker run -itd -v /宿主機/檔案目錄/檔名:/容器/目錄/檔名
# 例子:
$ mkdir /website
$ echo 'hello world !' > /website/index.html
$ docker stop ben-nginx
$ docker rm ben-nginx
$ docker run -itd --name=ben-nginx -p 80:80 -v /website:/usr/share/nginx/html nginx # 掛載目錄
$ curl 127.0.0.1:80
// hello world !
- 將容器的檔案複製到本地:
$ docker cp 容器名:/容器目錄/檔名 /宿主機目錄/檔名
$ docker cp ben-nginx:/etc/nginx/conf.d /website/nginx
- 將本地的檔案複製到容器:
$ docker cp /宿主機目錄/檔名 容器名:/容器目錄/檔名
$ docker cp /website/nginx ben-nginx:/etc/nginx/conf.d
容器互聯
$ docker run -itd --link 要關聯的容器名字:容器在被關聯的容器中的別名
容器互聯 - 例子:
# 以 php 與 mysql 來舉例
$ docker pull mysql
$ docker pull php
$ docker images
## -e 引數是傳參
$ docker run -itd --name mysql -p 3306:3306 -v /website/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
$ ls /website/mysql/
## Mysql 初始化操作
$ docker exec -it mysql /bin/bash
bash> mysql -uroot -p # 密碼 123456
bash - mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; # 修改 mysql 密碼
## mysql建立 ###########################################################
bash - mysql> create database test; # 建立 test 資料庫
bash - mysql> use test;
bash - mysql> create table if not exists user( name varchar(100) default '',age int default 0 )ENGINE=InnoDB DEFAULT CHARSET=utf8;
bash - mysql> insert into user (name,age) values ('zhangsan', 20);
bash - mysql> insert into user (name,age) values ('lisi', 18);
bash - mysql> select * from user;
bash - mysql> exit
######################################################################
bash> exit
# 建立 php 指令碼
$ vim /website/php/index.php #輸入以下內容 ##################################
<?php
try{
$pdo = new \PDO('mysql:host=mysql;dbname=test','root','123456');
foreach($pdo->query('select * from user') as $row){
print_r($row);
}
} catch (PDOException $e) {
die("Eooro !:" . $e->getMessage() . "<br/>");
}
######################################################################
# 建立 php 互聯 mysql 容器
$ docker run -itd --name=php --link mysql:mysql -v /website/php/index.php:/index.php php
# 進入 php 容器檢查互聯結果
$ docker exec -it php /bin/bash
bash> docker-php-ext-install pdo_mysql # 安裝 php 擴充套件
bash> php index.php # 輸出查詢結果(互聯成功)