前提
在安裝docker之前,建議你設(shè)置系統(tǒng)的國(guó)內(nèi)鏡像源先哦,很快~嗯润樱,快。
阿里云鏡像源:https://developer.aliyun.com/mirror/
安裝
安裝docker
下面都是官網(wǎng)地址:
ubuntu: https://docs.docker.com/engine/install/ubuntu/
centos:https://docs.docker.com/engine/install/centos/
其他版本就是url后面的幾個(gè)英文不同羡棵。
開(kāi)機(jī)啟動(dòng)
sudo systemctl enable docker.service
設(shè)置國(guó)內(nèi)鏡像
docker中國(guó)區(qū)的鏡像:https://registry.docker-cn.com
網(wǎng)易:http://hub-mirror.c.163.com
中國(guó)科技大學(xué):https://docker.mirrors.ustc.edu.cn
阿里云:https://cr.console.aliyun.com/ 點(diǎn)擊左側(cè)欄有個(gè)鏡像加速地址壹若,就可以看到你的加速鏡像地址
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["加速鏡像地址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
安裝docker-compose(用到才裝)
官網(wǎng)地址:https://docs.docker.com/compose/install/
設(shè)置.docker文件權(quán)限
docker安裝好后,會(huì)在當(dāng)前用戶(hù)的家目錄下生成.docker
文件皂冰,該文件不出意外的話(huà)是屬于root用戶(hù)和root組店展,畢竟要sudo下載,使用ll
命令查看一下秃流。
drwx------ 2 root root 4096 Jun 5 11:26 .docker/
假設(shè)我的用戶(hù)和組都為vagrant
赂蕴,那么命令如下:
sudo chown -R vagrant:vagrant 當(dāng)前用戶(hù)的家目錄/.docker
上面的vagrant:vagrant
對(duì)應(yīng)的是用戶(hù)名:用戶(hù)組
,一般情況下現(xiàn)在使用docker指令則不需要在前面加sudo
了(去你丫的sudo)
安裝步驟已完成
鏡像舶胀?容器概说?
什么是鏡像?什么是容器吶嚣伐?可以這么類(lèi)比:鏡像就是一個(gè)模板糖赔;容器則是根據(jù)模板的實(shí)現(xiàn)。在代碼中轩端,你也可以想成接口(鏡像)與實(shí)現(xiàn)類(lèi)(容器)放典。
docker鏡像中心
地址:https://hub.docker.com/,在這里你可以找到你所需要的鏡像基茵,你可以搜mysql奋构、redis、nginx等等耿导,可以查到有什么版本声怔、怎么運(yùn)行、有什么配置舱呻,有什么環(huán)境變量可以設(shè)置(比如在mysql你需要設(shè)置他的root密碼)等等信息醋火。
指令集
以mysql為例
下載鏡像
使用docker pull
命令
docker pull mysql:8.0.20
查看所有鏡像悠汽,可以看到你剛下載的mysql鏡像
docker images
創(chuàng)建并運(yùn)行容器
創(chuàng)建并運(yùn)行你的mysql容器,我使用一條比較長(zhǎng)的命令來(lái)講解:
sudo docker run --name mysql_1 -p 3306:3306 -v /var/mapping/mysql/conf.d:/etc/mysql/conf.d -v /var/mapping/mysql_1/lib:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0.20 --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4
指令格式 docker run [OPTIONS] IMAGE [COMMAND]
docker run:會(huì)創(chuàng)建并運(yùn)行容器
-p:映射端口 3306:3306 就是把容器的3306端口映射到宿主機(jī)的3306端口芥驳, 格式(宿主機(jī)端口:容器端口)
-v:映射數(shù)據(jù)卷柿冲,即映射文件,格式(宿主機(jī)數(shù)據(jù)卷:容器數(shù)據(jù)卷)
-e:設(shè)置環(huán)境變量兆旬,如設(shè)置root的初始密碼 MYSQL_ROOT_PASSWORD假抄,可以在docker的鏡像中心查看有哪些環(huán)境變量
-d:指定鏡像
--default-authentication-plugin=mysql_native_password
和--character-set-server=utf8mb4
屬于command參數(shù),需要設(shè)置在鏡像后面丽猬。
--default-authentication-plugin=mysql_native_password
指的是修改認(rèn)證的加密方式宿饱,mysql8.0后的加密方式改了,導(dǎo)致navicat那些數(shù)據(jù)庫(kù)管理工具連不上脚祟。所以這里修改加密方式為mysql_native_password
--character-set-server=utf8mb4
則是設(shè)置數(shù)據(jù)庫(kù)的編碼方式為utf8mb4谬以。
當(dāng)然還有很多的command指定都可以在docker hub鏡像中心查看。
自動(dòng)運(yùn)行
當(dāng)docker啟動(dòng)的時(shí)候由桌,容器也自動(dòng)啟動(dòng)为黎,有兩種方式
1.創(chuàng)建容器時(shí)指定--restart=always
docker run --restart=always -d mysql:8.0.20
2.容器已經(jīng)創(chuàng)建好了,使用docker update
修改容器行您,CONTAINER
可以是容器id铭乾,也可以是容器名,docker ps
可以命令查看
docker update --restart=always [CONTAINER]
常用指令
首先說(shuō)明一下:CONTAINER
可以是容器ID娃循,也可以是容器名炕檩,IMAGE
可以是鏡像ID,也可以是 鏡像名:tag
查看所有鏡像
docker images
查看所有容器淮野,包括沒(méi)啟動(dòng)的(加 -a 選項(xiàng))
docker ps -a
啟動(dòng)容器捧书,停止容器
docker start [CONTAINER]
docker start CONTAINER1 CONTAINER2 # 啟動(dòng)多個(gè)容器
docker stop [CONTAINER]
docker stop CONTAINER1 CONTAINER2 # 停止多個(gè)容器
進(jìn)入容器
docker exec -it [CONTAINER] bash
在宿主機(jī)執(zhí)行容器內(nèi)的命令,mysqldump是mysql_1容器內(nèi)的指令
docker exec -it mysql_1 mysqldump ...
刪除容器
docker rm [CONTAINER]
docker rm CONTAINER1 CONTAINER2 # 刪除多個(gè)容器
刪除鏡像
docker rmi [IMAGE]
docker rmi IMAGE1 IMAGE2 # 刪除多個(gè)鏡像
docker鏡像倉(cāng)庫(kù)
當(dāng)你在公司修改了某個(gè)容器之后骤星,想在家也使用這個(gè)容器经瓷。那么可以把容器打包成鏡像,提交到docker倉(cāng)庫(kù)當(dāng)中洞难。
我是在aliyun上創(chuàng)建了docker鏡像倉(cāng)庫(kù):https://cr.console.aliyun.com/
首先把你的容器打包成鏡像舆吮,這個(gè)是把我的mysql_1
容器打包成鏡像my_mysql_1
,tag
為latet
队贱。
docker commit mysql_1 my_mysql_1:latest
打包完后執(zhí)行指令docker images
色冀,查看鏡像是否存在。
提交到鏡像倉(cāng)庫(kù)
1.首先需要?jiǎng)?chuàng)建命名空間
2.創(chuàng)建你的鏡像倉(cāng)庫(kù)
3.登錄并提交到倉(cāng)庫(kù)
點(diǎn)擊所需提交到鏡像倉(cāng)庫(kù)的管理按鈕柱嫌,可以查看到以下界面
跟著這里面的步驟執(zhí)行就可以提交到docker鏡像倉(cāng)庫(kù)了锋恬。就介么簡(jiǎn)單。
總結(jié)
以上便是docker比較常用的操作编丘。ok与学,拜拜你了~彤悔。
個(gè)人博客網(wǎng)址: https://colablog.cn/
如果我的文章幫助到您,可以關(guān)注我的微信公眾號(hào)索守,第一時(shí)間分享文章給您