Docker 劃分為CE 和EE统求。CE 即社區(qū)版(免費(fèi)检碗,支持周期三個(gè)月),EE 即企業(yè)版码邻,強(qiáng)調(diào)安全折剃,付費(fèi)使用。
一像屋、安裝
在Ubuntu系統(tǒng)中安裝較為簡(jiǎn)單怕犁,官方提供了腳本供我們進(jìn)行安裝。
sudo apt install curl
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
執(zhí)行這個(gè)命令后己莺,腳本就會(huì)自動(dòng)的將一切準(zhǔn)備工作做好奏甫,并且把Docker CE 的Edge版本安裝在系統(tǒng)中。
啟動(dòng)Docker CE
sudo systemctl enable docker
sudo systemctl start docker
建立docker 用戶組
默認(rèn)情況下凌受,docker 命令會(huì)使用Unix socket 與Docker 引擎通訊阵子。而只有root 用戶和docker 組的用戶才可以訪問Docker 引擎的Unix socket。出于安全考慮胜蛉,一般Ubuntu系統(tǒng)上不會(huì)直接使用root 用戶挠进。因此,更好地做法是將需要使用docker 的用戶加入docker用戶組誊册。
# 建立docker組
sudo groupadd docker
# 將當(dāng)前用戶加入docker組
sudo usermod -aG docker $USER
注銷當(dāng)前用戶领突,重新登錄Ubuntu,輸入docker info案怯,此時(shí)可以直接出現(xiàn)信息君旦。
配置國內(nèi)鏡像加速
在/etc/docker/daemon.json 中寫入如下內(nèi)容(如果文件不存在請(qǐng)新建該文件)
{
"registry-mirrors": [
"https://9cpn8tt6.mirror.aliyuncs.com"
]
}
重新啟動(dòng)服務(wù)
sudo systemctl daemon-reload
sudo systemctl restart docker
測(cè)試
sudo docker run hello-world
二、使用Docker
-
基本命令
- 啟動(dòng)docker
sudo service docker start
- 停止docker
sudo service docker stop
- 重啟docker
sudo service docker restart
- 列出鏡像
docker image ls
- 拉取鏡像
docker image pull library/hello-world
- 刪除鏡像
docker image rm 鏡像id/鏡像ID
- 創(chuàng)建容器
docker run [選項(xiàng)參數(shù)] 鏡像名 [命令]
- 查看已存在容器的創(chuàng)建命令
docker ps -as
- 停止一個(gè)已經(jīng)在運(yùn)行的容器
docker container stop 容器名或容器id
- 啟動(dòng)一個(gè)已經(jīng)停止的容器
docker container start 容器名或容器id
- kill掉一個(gè)已經(jīng)在運(yùn)行的容器
docker container kill 容器名或容器id
- 刪除容器
docker container rm 容器名或容器id
2. 運(yùn)行交互式的容器
我們通過 docker 的兩個(gè)參數(shù) -i -t嘲碱,讓 docker 運(yùn)行的容器實(shí)現(xiàn)"對(duì)話"的能力:
runoob@runoob:~$ docker run -i -t ubuntu:15.10 /bin/bash
root@0123ce188bd8:/#
各個(gè)參數(shù)解析:
-t: 在新容器內(nèi)指定一個(gè)偽終端或終端金砍。
-i: 允許你對(duì)容器內(nèi)的標(biāo)準(zhǔn)輸入 (STDIN) 進(jìn)行交互。
我們可以通過運(yùn)行 exit 命令或者使用 CTRL+D 來退出容器悍汛。
3. 啟動(dòng)容器(后臺(tái)模式)
使用以下命令創(chuàng)建一個(gè)以進(jìn)程方式運(yùn)行的容器
runoob@runoob:~$ docker run -d ubuntu:15.10
二捞魁、使用Docker安裝 MySQL
用 docker search mysql 命令來查看可用版本:
$ docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 9535 [OK]
mariadb MariaDB is a community-developed fork of MyS… 3458 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create… 699 [OK]
2至会、拉取 MySQL 鏡像
這里我們拉取官方的最新版本的鏡像:
$ docker pull mysql:latest
latest: Pulling from library/mysql
afb6ec6fdc1c: Pull complete
0bdc5971ba40: Pull complete
97ae94a2c729: Pull complete
f777521d340e: Pull complete
1393ff7fc871: Pull complete
a499b89994d9: Pull complete
7ebe8eefbafe: Pull complete
597069368ef1: Pull complete
ce39a5501878: Pull complete
7d545bca14bf: Pull complete
211e5bb2ae7b: Pull complete
5914e537c077: Pull complete
Digest: sha256:a31a277d8d39450220c722c1302a345c84206e7fd4cdb619e7face046e89031d
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest
3离咐、查看本地鏡像
使用以下命令來查看是否已安裝了 mysql:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql latest 30f937e841c8 2 days ago 541MB
hello-world latest bf756fb1ae65 4 months ago 13.3kB
4、運(yùn)行容器
安裝完成后奉件,我們可以使用以下命令來運(yùn)行 mysql 容器:
$ docker run -itd --name mysql-test -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
大小寫敏感
docker run -itd --name mysql5.7 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
--lower_case_table_names=1
參數(shù)說明:
-p 3306:3306 :映射容器服務(wù)的 3306 端口到宿主機(jī)的 3306 端口宵蛀,外部主機(jī)可以直接通過 宿主機(jī)ip:3306 訪問到 MySQL 的服務(wù)。
MYSQL_ROOT_PASSWORD=123456:設(shè)置 MySQL 服務(wù) root 用戶的密碼县貌。
使用docker exec進(jìn)入Docker容器
docker exec -it e212d04ad4b5 /bin/bash
從容器里面拷文件到宿主機(jī)
docker cp mysql-5.7:/etc/mysql/ /home
從宿主機(jī)拷文件到容器里面
docker cp /home/s/my.cnf mysql-5.7:/etc/mysql/
大小寫敏感修改
/etc/my.cnf 中的[mysqld]后添加添加lower_case_table_names=1术陶,重啟MYSQL服務(wù) 0敏感 1不敏感
開啟遠(yuǎn)程連接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
5、安裝成功
通過 docker ps 命令查看是否安裝成功:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a22eb3bd540b mysql "docker-entrypoint.s…" 39 seconds ago Up 38 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql-test
6煤痕、連接
mysql -u root -P3308 -h 127.0.0.1 -p