deepin官方百科教程地址:https://wiki.deepin.org/wiki/Docker
官方教程有些坑我備註了一下
-
如果以前安裝過老版本,要確保先卸載以前版本
sudo apt-get remove docker.io docker-engine
-
安裝密鑰管理與下載相關的工具
// 密鑰管理(add-apt-repository ca-certificates 等)與下載(curl 等)相關的工具
//可能會報錯
sudo apt-get install apt-transport-https ca-certificates curl python-software-properties software-properties-common
注意:這句命令會報錯,用下面這句就沒有問題
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
-
下載並安裝密鑰
鑑於國內網絡問題,強烈建議使用國內源,官方源請在註釋中查看。
國內源可選用清華大學開源軟件鏡像站或中科大開源鏡像站,示例選用了中科大的。
爲了確認所下載軟件包的合法性,需要添加軟件源的 GPG 密鑰。
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -
// 官方源,能否成功可能需要看運氣。
// curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
-
查看密鑰是否安裝成功
sudo apt-key fingerprint 0EBFCD88
如果安裝成功,會出現如下內容:
pub 4096R/0EBFCD88 2017-02-22 Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) <[email protected]>
sub 4096R/F273FCD8 2017-02-22
-
在 source.list 中添加 docker-ce 軟件源(請先查看後面的 Note):
注:我沒成功過。。。總是報錯提示找不到對應版本,然後我就繼續執行後面的命令,最後也成功了貌似沒有影響。等發現了再來更新吧
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian wheezy stable"
// 官方源
// sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian wheezy stable"
// 15.10 會提示 aptsources.distro.NoDistroTemplateException: Error: could not find a distribution template for Deepin/stable
// 這裏我們通過編輯 sudo vim /etc/apt/sources.list 添加一行即可,原因未知
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian stretch stable"
Note: 官方在 wheezy
位置使用的是 $(lsb_release -cs)
,但之前已經解釋過,在 deepin 裏運行它得到的是 unstable,docker 官方不支持 unstable 版本!因此直接使用官方教程的命令會安裝失敗。
更改方法:將上述命令中的版本名稱 wheezy,替換成 deepin 基於的 debian 版本對應的代號。查看版本號的命令爲:cat /etc/debian_version
.
舉例:
a). 對於 deepin 15.5,我操作上面的命令得到 debain 版本是 8.0,debian 8.0 的代號是 jessie,把上面的 wheezy 替換成 jessie,就可以正常安裝 docker 了。
b). deepin 15.9.2 基於 debian 9.0 , debian 9.0 的代號爲 stretch, 所以 deepin 15.9.2 上完整的添加信息爲:
sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian stretch stable"
-
更新倉庫
sudo apt-get update
-
安裝 docker-ce
由於網絡不穩定,可能會下載失敗。如果下載失敗了,可以多試幾次或者找個合適的時間繼續。
sudo apt-get install docker-ce
在安裝完後啓動報錯,查看 docker.service 的 unit 文件,路徑爲 /lib/systemd/system/docker.service,把 ExecStart=/usr/bin/dockerd -H fd:// 修改爲 ExecStart=/usr/bin/dockerd,就能正常啓動 docker 了
Note:經測試,在 Deepin15.9 中已不需要做修改可直接啓動 docker-ce
-
啓動 docker:
systemctl start docker
-
查看安裝的版本信息
docker version
- 更換國內的 docker 加速器
如果使用 docker 官方倉庫,速度會很慢,所以更換國內加速器就不可避免了。
方式一:使用阿里雲的docker加速器。
在阿里雲申請一個賬號
打開連接 https://cr.console.aliyun.com/#/accelerator 拷貝您的專屬加速器地址。
修改 daemon 配置文件 /etc/docker/daemon.json 來使用加速器(下面是4個命令,分別單獨執行)
Note: 這裏的 https://jxus37ad.mirror.aliyuncs.com 是申請者的加速器地址,在此僅僅用於演示,而使用者要個根據自己的使用的情況填寫自己申請的加速器地址。
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://jxus37ad.mirror.aliyuncs.com"]
}
重啓 docker 服務
sudo service docker restart
-
在docker上安裝mysql5.7
查找mysql鏡像
[root@centos-linux-pure ~]# docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation 6150 [OK]
mariadb MariaDB is a community-developed fork of MyS 1928 [OK]
mysql/mysql-server Optimized MySQL Server Docker images. Create 442 [OK]
percona Percona Server is a fork of the MySQL relati 339 [OK]
zabbix/zabbix-server-mysql Zabbix Server with MySQL database support 96 [OK]
hypriot/rpi-mysql RPi-compatible Docker Image with Mysql 83
centurylink/mysql Image containing mysql. Optimized to be link 59 [OK]
zabbix/zabbix-web-nginx-mysql Zabbix frontend based on Nginx web-server wi 50 [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-5 34 [OK]
tutum/mysql Base docker image to run a MySQL database se 32
centos/mysql-57-centos7 MySQL 5.7 SQL database server 27
mysql/mysql-cluster Experimental MySQL Cluster Docker images. Cr 23
schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic backup 18 [OK]
bitnami/mysql Bitnami MySQL Docker Image 15 [OK]
linuxserver/mysql A Mysql container, brought to you by LinuxSe 14
zabbix/zabbix-proxy-mysql Zabbix proxy with MySQL database support 12 [OK]
centos/mysql-56-centos7 MySQL 5.6 SQL database server 8
openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 image 6
circleci/mysql MySQL is a widely used, open-source relation 5
dsteinkopf/backup-all-mysql backup all DBs in a mysql server 3 [OK]
frodenas/mysql A Docker Image for MySQL 2 [OK]
ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 0 [OK]
openzipkin/zipkin-mysql Mirror of https://quay.io/repository/openzip 0
cloudposse/mysql Improved `mysql` service with support for `m 0 [OK]
cloudfoundry/cf-mysql-ci Image used in CI of cf-mysql-release 0
這裏我們拉取官方的鏡像,標籤爲5.7
[root@centos-linux-pure docker]# docker pull mysql:5.7
5.7: Pulling from library/mysql
f2aa67a397c4: Pull complete
1accf44cb7e0: Pull complete
2d830ea9fa68: Pull complete
740584693b89: Pull complete
4d620357ec48: Pull complete
ac3b7158d73d: Pull complete
a48d784ee503: Pull complete
bf1194add2f3: Pull complete
0e5c74178a02: Pull complete
e9201d309436: Pull complete
bf1ac4524e8e: Pull complete
Digest: sha256:f030e84582d939d313fe2ef469b5c65ffd0f7dff3b4b98e6ec9ae2dccd83dcdf
Status: Downloaded newer image for mysql:5.7
等待下載完成後,我們就可以在本地鏡像列表裏查到REPOSITORY爲mysql,標籤爲5.7的鏡像。
使用mysql鏡像
運行容器
docker run -p 3306:3306 --name mysql1 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7 --lower_case_table_names=1
命令說明:
-
-p 3306:3306:將容器的3306端口映射到主機的3306端口
-
-v -v $PWD/conf:/etc/mysql/conf.d:將主機當前目錄下的conf/my.cnf掛載到容器的/etc/mysql/my.cnf
-
-v $PWD/logs:/logs:將主機當前目錄下的logs目錄掛載到容器的/logs
-
-v $PWD/data:/var/lib/mysql:實現持久化。將主機當前目錄下的data目錄掛載到容器的/var/lib/mysql(綁定數據卷,格式:“宿主機路徑:容器路徑”)
(注:$PWD代表當前目錄,)
-
-e MYSQL_ROOT_PASSWORD=123456:初始化root用戶的密碼
-
--lower_case_table_names=1: 表名忽略大小寫
查看容器啓動情況
[root@centos-linux-pure mysql]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
29435450d425 mysql:5.7 "docker-entrypoint.sΒ 13 seconds ago Up 4 seconds 0.0.0.0:3306->3306/tcp mymysql