Docker學習筆記

1、docker是什麼?

虛擬化容器技術。Docker基於鏡像,可以秒級啟動各種容器。每一種容器都是一個完整的運行

環境,容器之間互相隔離。

2、Linux下docker安裝

進入docker官網,查看對應linux系統的docker安裝文檔

centos為例:

https://docs.docker.com/engine/install/centos/

  • 卸載舊版本的docker
<code>  

sudo yum remove docker \                 docker-client \                 docker-client-latest \                 docker-common \                 docker-latest \                 docker-latest-logrotate \                 docker-logrotate \                 docker-engine

/<code>
  • 安裝docker依賴庫
<code>$ sudo yum install -y yum-utils
​
$ sudo yum-config-manager \
    --add-repo \
    

https:

/

/download.docker.com/linux

/centos/docker

-ce.repo/<code>

[sudo] 表示啟動管理員身份執行,如果是root賬戶,可以不加此關鍵字

  • 安裝docker
<code>$ sudo yum install docker-ce docker-ce-cli containerd.

io

/<code>
  • 啟動docker
<code>$ sudo systemctl start docker/<code>
  • 檢查啟動狀態
<code>$ sudo docker -v/<code>
  • 設置開機自啟
<code>

sudo systemctl

enable

docker/<code>
  • 查看當前docker安裝的鏡像資源
<code>$ sudo docker images/<code>

查看正在docker中運行的應用

<code>$ sudo docker ps/<code>

重啟/關閉docker

<code>

systemctl

restart docker

systemctl

stop docker

/<code>

3、環境-配置docker阿里雲鏡像加速

由於docker hub 是外國網站訪問速度慢,這裡需要配置國內的docker鏡像,我們採用阿里雲的加速

登陸阿里雲https://www.aliyun.com/ — 控制檯 — 左側產品服務 — 容器鏡像服務 — 鏡像加速器 — CentOS

<code>sudo 

mkdir

-p /etc/docker ​ sudo tee /etc/docker/daemon.json "registry-mirrors": [

"https://mdf000mb.mirror.aliyuncs.com"

] } EOF ​ sudo systemctl daemon-reload ​ sudo systemctl restart docker/<code>

4、docker安裝mysql

  • 下載鏡像文件

docker hub 搜索mysql 點擊官方(Official字樣)— Tags 查看版本號

<code>

$sudo

docker pull mysql:5.7/<code>
  • 創建實例並啟動
<code>$ sudo docker run -p 

3306

:

3306

--name mysql -v /mydata/mysql/conf:

/etc/my

sql -v /mydata/mysql/logs:

/var/

log/mysql -v /mydata/mysql/data:

/var/

lib/mysql -e MYSQL_ROOT_PASSWORD=

123456

-d mysql:

5.7

/<code>

參數說明

-p 33063306:將容器的3306端口映射到主機的3306端口

-v
/mydata/mysql/conf:/etc/mysql :將配置文件夾掛載到主機

-v
/mydata/mysql/logs:/var/log/mysql :將日誌文件夾掛載到主機

-v
/mydata/mysql/data:/var/ib/mysql :將配置文件夾掛載到主機

-e MYSQL ROOT PASSWORD =123456 :初始化root用戶的密碼為123456

-d mysql:5.7 : 後臺運行mysql5.7

  • 添加mysql配置文件my.cnf
<code>

vi

/mydata/mysql/conf/my.cnf/<code>
<code>[client]
default-character-

set

=utf8 ​ [mysql]

default

-

character

-

set

=utf8 ​ [mysqld] init_connect=

'SET collation_connection = utf8_unicode_ci'

init_connect=

'SET NAMES utf8'

character

-

set

-

server

= utf8

collation

-

server

=utf8_unicode_ci

skip

-

character

-

set

-

client

-handshake

skip

-

name

-resolve/<code>
  • 進入到docker mysql容器中檢查
<code>

docker

exec -it mysql /bin/bash

cd

/etc/mysql/

cat

my.cnf

/<code>
  • 重啟docker中的mysql
<code>

docker

restart mysql/<code>
  • 設置docker啟動後mysql自啟動
<code>docker 

update

mysql /<code>

5、docker安裝redis

  • 下載鏡像文件
<code>

docker

pull redis/<code>
  • 創建實例並啟動創建redis.conf文件,用於redis配置文件掛載(默認redis配置目錄下沒有該文件,會導致第二步驟執行將redis.conf當作文件夾創建)
<code>

mkdir

-p /mydata/redis/conf

touch

/mydata/redis/conf/redis.conf

/<code>

啟動,端口映射並掛載文件

<code>

docker

run -p

6379

:

6379

--name redis -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf/<code>
  • 測試
<code> docker 

exec

-it redis redis-cli/<code>
  • 設置數據持久化(按需)當前redis數據存儲默認為內存中,當docker重啟後,redis數據會丟失,可以配置redis.conf配置文件,改變存儲方式appendonly yes
  • docker重啟後redis自啟動
<code>docker 

update

redis /<code>

6、docker安裝tomcat並部署應用運行

  • 下載鏡像文件docker pull tomcat:8
  • 啟動tomcatdocker run --name yoyotomcat -p 8080:8080 -v /usr/local/tomcat/webapps/demo:/usr/local/tomcat/webapps/demo -d tomcat:8 --name yoyotomcat 容器重命名yoyotomcat-p 8090:8080 容器的8080端口映射到主機的8090端口-v /usr/local/tomcat/webapps/demo:/usr/local/tomcat/webapps/demo容器的/usr/local/tomcat/webapps/demo 目錄掛載到本機 /usr/local/tomcat/webapps/demo,前面是本機地址,後面是docker鏡像地址-d 掛後臺運行


End



分享到:


相關文章: