CentOS上安裝docker(簡單入門)

安裝

文檔資源?https://docs.docker.com/install/linux/docker-ce/centos/

1.檢查系統(tǒng)是否安裝過docker相關(guān)的軟件包,執(zhí)行以下命令花鹅,進(jìn)行全面下載

sudo yum remove docker \

? ? ? ? ? ? ? ? docker-client \

? ? ? ? ? ? ? ? docker-client-latest \

? ? ? ? ? ? ? ? docker-common \

? ? ? ? ? ? ? ? docker-latest \

? ? ? ? ? ? ? ? docker-latest-logrotate \

? ? ? ? ? ? ? ? docker-logrotate \

? ? ? ? ? ? ? ? docker-engine

2.安裝前先設(shè)置docker的存儲庫

a.存儲庫依賴

sudo yum install -y yum-utils \

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?device-mapper-persistent-data \

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?lvm2

b.設(shè)置存儲庫

sudo yum-config-manager \

? ? ? ? ?--add-repo \

? ? ? ? https://download.docker.com/linux/centos/docker-ce.repo

3.安裝最新版本的Docker CE和containerd

sudo yum install -y docker-ce docker-ce-cli containerd.io

這里是自動選擇最新版的正压,如果需要其他版本锨络,可自行到https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce-1查看

配置

1.修改默認(rèn)存儲路徑

docker 默認(rèn)的存儲路徑在 /var/lib/docker下面忧饭,這里舉例修改為 /soft/data/docker 县忌,事先記得準(zhǔn)備好對應(yīng)的文件夾僧凰。

a.修改docker.service文件探颈,在里面的EXECStart的后面追加代碼

vim /usr/lib/systemd/system/docker.service

ExecStart=/usr/bin/dockerd --graph /soft/data/docker

b.重新 enable 一下docker 服務(wù) 重新進(jìn)行軟連接 以及進(jìn)行一次 daemon-reload

systemctl stop docker

systemctl disable docker

systemctl enable docker

systemctl?daemon-reload

systemctl start docker

c.查看 docker info 信息,執(zhí)行命令?docker info 即可


測試

1.使用鏡像hello-world經(jīng)行體驗?sudo docker run hello-world


異常警告

1.出現(xiàn)?WARNING: bridge-nf-call-iptables is disabled 和 WARNING: bridge-nf-call-ip6tables is disabled 警告

解決:vim /etc/sysctl.conf 训措, 追加一下兩行膝擂,然后執(zhí)行 sysctl -p

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

相關(guān)命令

docker search 關(guān)鍵字 # docker鏡像搜索??

systemctl status docker # 查看docker是否運行

docker images # 查看已有的鏡像

docker pull 鏡像名稱:TAG標(biāo)簽 # 下載鏡像,如?docker pull redis:5.0.5

docker rmi 鏡像id # 刪除鏡像

docker ps -a # 查看全部容器隙弛,不加 -a 表示進(jìn)查詢當(dāng)前運行的容器

docker start 容器名稱或id # 啟動指定容器架馋,如??docker start redis_6379

docker stop 容器名稱或id?# 停止指定容器,如??docker stop redis_6379

docker rm -v 容器名稱或id?# 刪除指定容器全闷,如??docker rm -v redis_6379?

docker exec -it 容器名稱或id /bin/bash # 進(jìn)入容器shell

docker inspect 容器名稱或id | grep Mounts -A 顯示的行數(shù) #查看容器目錄映射

鏡像與容器

一叉寂、redis

1.文檔準(zhǔn)備

https://hub.docker.com/_/redis?docker-redis參考文檔

https://redis.io/topics/config?redis參考文檔

2.查詢可用的redis鏡像,選擇合適的版本進(jìn)行下載总珠。鏈接:https://hub.docker.com/_/redis

這里使用 5.0.5 版本屏鳍,使用命令?docker pull redis:5.0.5 經(jīng)行下載。下載完成后局服,使用?docker images 可查看下載的鏡像

3.準(zhǔn)備兩個目錄?/soft/data/redis/conf 和?/soft/data/redis/data 前者存放配置文件钓瞭,后者存放持久化數(shù)據(jù)文件

redis.conf 文件下載地址?https://raw.githubusercontent.com/antirez/redis/5.0/redis.conf?(5.0版本)

修改redis.conf。這里演示只修改兩項

bind 0.0.0.0 #訪問IP綁定

dir /data/ #持久化數(shù)據(jù)存放目錄

requirepass myPassWord #指定密碼

4.運行鏡像并生成指定容器

docker run -p 6379:6379 -v /soft/data/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf -v /soft/data/redis/data:/data --name redis_6379 -d redis:5.0.5 redis-server /usr/local/etc/redis/redis.conf

簡要解釋:

a. -p 6379:6379 端口映射淫奔,外面的6379端口映射到容器的6379端口

b.?-v /soft/data/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf 配置文件映射山涡,使用?/soft/data/redis/conf/redis.conf 作為配置文件

c.?-v /soft/data/redis/data:/data 目錄映射,使用容器外的?/soft/data/redis/data 作為存放目錄

d.--name redis_6379 指定容器名字

e.?-d 表示后臺運行

f.?redis:5.0.5 鏡像名稱及其標(biāo)簽(TAG)

5.驗證使用 docker exec -it redis_6379 redis-server -v 查看容器內(nèi)的redis版本?

二、手工構(gòu)建Dockerfile來運行spring boor的jar

1.準(zhǔn)備目錄?/soft/data/my-docker 鸭丛,?/soft/data/my-docker/data竞穷,?/soft/data/my-docker/tmp

2.進(jìn)入/soft/data/my-docker,創(chuàng)建Dockerfile文件鳞溉,內(nèi)容如下:

FROM openjdk:8u212-jre

# 環(huán)境變量設(shè)置?

ENV ENV_VALUE1 docker-env-value1

# 設(shè)置時區(qū)?

RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone?

VOLUME /tmp

WORKDIR /data

COPY ./my-docker.jar /data/app.jar

CMD ["java", "-jar", "app.jar", "--spring.profiles.active=test"]

簡要解釋:

a.FROM openjdk:8u212-jre瘾带,指定基礎(chǔ)鏡像,可理解為java環(huán)境

b.VOLUME /tmp熟菲,默認(rèn)情況下看政,spring boot內(nèi)嵌了tomcat,其臨時文件將會在 /tmp 目錄中生成抄罕,因此需要加載此卷

c.WORKDIR /data允蚣,指定工作目錄,可理解為安裝目錄(PS:后面app.jar將在這里面)

d.COPY ./my-docker.jar /data/app.jar贞绵,將指定文件復(fù)制到容器內(nèi)厉萝,注意:/data/app.jar是容器內(nèi)的恍飘,與上面的WORKDIR對應(yīng)

e.CMD ["java", "-jar", "app.jar"]榨崩,執(zhí)行腳本命令,品味一下空格和逗號

3.使用命令 docker build -t my-docker:0.0.1 . (后面還有一個點)創(chuàng)建鏡像章母,完成后使用?docker images 查看鏡像

4.運行鏡像并生成指定容器母蛛,命令:docker run -p 8080:9527 -v /soft/data/my-docker/tmp:/tmp -v /soft/data/my-docker/data:/data/my-docker --name my-docker -d my-docker:0.0.1

5.查看正在運行的容器,docker ps乳怎,如果存在my-docker說明啟動成功彩郊。附上my-docker這個小demo的目錄與配置

三、簡單文檔管理 MinDoc

1. 相關(guān)文檔

a.Mindoc官網(wǎng):https://www.iminho.me/

b.Mindoc GitHub:https://github.com/lifei6671/mindoc

c.Mindoc幫助文檔:https://www.iminho.me/wiki/docs/mindoc/mindoc-docker.md

2.目錄準(zhǔn)備

mkdir /soft/data/mindoc

cd?/soft/data/mindoc/

mkdir conf database logs uploads

3.在GitHub中下載配置文件app.conf蚪缀,并存放到conf文件夾中秫逝,以備以后實現(xiàn)自定義配置

4.創(chuàng)建Dockerfile,內(nèi)容:FROM registry.cn-hangzhou.aliyuncs.com/mindoc/mindoc:v2.0?询枚,這里的 "v2.0" 可從GitHub的release中查詢

5.獲取MinDoc鏡像:docker build -t mindoc:v2.0 . (注意這里有一個點)

6.運行鏡像并生成指定容器

docker run --name=mindoc_8181 --restart=always -v /soft/data/mindoc/conf/app.conf:/mindoc/conf/app.conf -v /soft/data/mindoc/uploads:/mindoc/uploads -v /soft/data/mindoc/database:/mindoc/database -v /soft/data/mindoc/logs:/mindoc/runtime/logs -e MINDOC_DB_ADAPTER=sqlite3 -e MINDOC_DB_DATABASE=./database/mindoc.db -e MINDOC_CACHE=true -e MINDOC_CACHE_PROVIDER=file -e MINDOC_ENABLE_EXPORT=true -p 8181:8181 -d registry.cn-hangzhou.aliyuncs.com/mindoc/mindoc:v2.0

7.容器成功運行后违帆,執(zhí)行 docker ps 可看到下圖所示

8.注意,此處進(jìn)入容器內(nèi)部使用的命令為?docker exec -it mindoc_8181 /bin/sh金蜀,后面是 "?/bin/sh " !

四刷后、nginx

1.相關(guān)文檔

a.docker-nginx參考文檔?https://hub.docker.com/_/nginx

2.準(zhǔn)備目錄conf,conf.d渊抄,html尝胆,log,和ssl护桦,命令?mkdir -p /soft/data/nginx/{conf,conf.d,html,log,ssl}

3.準(zhǔn)備nginx的配置文件nginx.conf和default.conf

#nginx.conf

user nginx;

worker_processes? 1;

error_log? /var/log/nginx/error.log warn;

pid? ? ? ? /var/run/nginx.pid;

events {

? ? worker_connections? 1024;

}

http {

? ? include? ? ? /etc/nginx/mime.types;

? ? default_type? application/octet-stream;

? ? log_format? main? '$remote_addr - $remote_user [$time_local] "$request" '

? ? ? ? ? ? ? ? ? ? ? '$status $body_bytes_sent "$http_referer" '

? ? ? ? ? ? ? ? ? ? ? '"$http_user_agent" "$http_x_forwarded_for"';

? ? access_log? /var/log/nginx/access.log? main;

? ? sendfile? ? ? ? on;

? ? #tcp_nopush? ? on;

? ? keepalive_timeout? 65;

? ? #gzip? on;

? ? include /etc/nginx/conf.d/*.conf;

}

#default.conf

server {

? ? listen? ? ? 80;

? ? server_name? localhost;

? ? #charset koi8-r;

? ? #access_log? /var/log/nginx/host.access.log? main;

? ? location / {

? ? ? ? root? /usr/share/nginx/html;

? ? ? ? index? index.html index.htm;

? ? }

? ? #error_page? 404? ? ? ? ? ? ? /404.html;

? ? # redirect server error pages to the static page /50x.html

? ? #

? ? error_page? 500 502 503 504? /50x.html;

? ? location = /50x.html {

? ? ? ? root? /usr/share/nginx/html;

? ? }

? ? # proxy the PHP scripts to Apache listening on 127.0.0.1:80

? ? #

? ? #location ~ \.php$ {

? ? #? ? proxy_pass? http://127.0.0.1;

? ? #}

? ? # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

? ? #

? ? #location ~ \.php$ {

? ? #? ? root? ? ? ? ? html;

? ? #? ? fastcgi_pass? 127.0.0.1:9000;

? ? #? ? fastcgi_index? index.php;

? ? #? ? fastcgi_param? SCRIPT_FILENAME? /scripts$fastcgi_script_name;

? ? #? ? include? ? ? ? fastcgi_params;

? ? #}

? ? # deny access to .htaccess files, if Apache's document root

? ? # concurs with nginx's one

? ? #

? ? #location ~ /\.ht {

? ? #? ? deny? all;

? ? #}

}

準(zhǔn)備html頁面index.html含衔,并存放到html文件夾中

<html>

<head><title>hello</title></head>

<body>

<center><h1>hello world</h1></center>

</body>

</html>

4.在docker倉庫中查找所需要的nginx版本,鏈接:https://hub.docker.com/_/nginx,這里選擇1.17.1

使用命令?docker pull nginx:1.17.1 下載鏡像

5.運行鏡像并生成指定容器:docker run --name nginx_8080 -d -p 8080:80 -v /soft/data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /soft/data/nginx/conf.d:/etc/nginx/conf.d -v /soft/data/nginx/html:/usr/share/nginx/html -v /soft/data/nginx/ssl:/usr/share/nginx/ssl -v /soft/data/nginx/log:/var/log/nginx nginx:1.17.1

6.打開鏈接 http://192.168.xx.xxx:8080/ 出現(xiàn)下圖所示抱慌,說明nginx啟動成功

7.附:進(jìn)入容器內(nèi)部的命令為?docker exec -it nginx_8080 /bin/bash

參考資料

1.深入理解Docker Volume(一)http://dockone.io/article/128

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末逊桦,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子抑进,更是在濱河造成了極大的恐慌强经,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寺渗,死亡現(xiàn)場離奇詭異匿情,居然都是意外死亡,警方通過查閱死者的電腦和手機信殊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進(jìn)店門炬称,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人涡拘,你說我怎么就攤上這事玲躯。” “怎么了鳄乏?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵跷车,是天一觀的道長。 經(jīng)常有香客問我橱野,道長朽缴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任水援,我火速辦了婚禮密强,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蜗元。我一直安慰自己或渤,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布奕扣。 她就那樣靜靜地躺著薪鹦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪成畦。 梳的紋絲不亂的頭發(fā)上距芬,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機與錄音循帐,去河邊找鬼框仔。 笑死,一個胖子當(dāng)著我的面吹牛拄养,可吹牛的內(nèi)容都是我干的离斩。 我是一名探鬼主播银舱,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼跛梗!你這毒婦竟也來了寻馏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤核偿,失蹤者是張志新(化名)和其女友劉穎诚欠,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體漾岳,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡轰绵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了尼荆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片左腔。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖捅儒,靈堂內(nèi)的尸體忽然破棺而出液样,到底是詐尸還是另有隱情,我是刑警寧澤巧还,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布鞭莽,位于F島的核電站,受9級特大地震影響狞悲,放射性物質(zhì)發(fā)生泄漏撮抓。R本人自食惡果不足惜妇斤,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一摇锋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧站超,春花似錦荸恕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至算撮,卻和暖如春生宛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背肮柜。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工陷舅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人审洞。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓莱睁,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子仰剿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容