1、docker簡介mysql
docker是一個開源的應用容器引擎;是一個輕量級容器技術; docker支持將軟件編譯成一個鏡像;而後在鏡像中各類軟件作好配置,將鏡像發佈出去,其餘使用者能夠直接使用這個鏡像; 運行中的這個鏡像稱爲容器,容器啓動是很是快速的。linux
2、docker的核心概念web
docker主機(Host):安裝了Docker程序的機器(docker直接安裝在操做系統之上); redis
docker客戶端(Client):鏈接docker主機進行操做; sql
docker倉庫(Registry):用來保存各類打包好的軟件鏡像; docker
docker鏡像(Images):軟件打包好的鏡像;放在docker倉庫中; shell
docker容器(Container):鏡像啓動後的實例稱爲一個容器;容器是獨立運行的一個或一組應用
數據庫
3、使用docker步驟vim
1)、安裝docker centos
2)、去docker倉庫找到這個軟件對應的鏡像(docker hub);
3)、使用docker運行這個鏡像,這個鏡像就會生成一個docker容器;
4)、對容器的啓動中止就是對軟件的啓動中止;
4、docker的安裝與卸載
1)、docker的安裝命令
一、檢查內核版本,必須是3.10及以上
uname -r
複製代碼
# step 1: 安裝必要的一些系統工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加軟件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新並安裝 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 開啓Docker服務
sudo service docker start
# 注意:
# 官方軟件源默認啓用了最新的軟件,您能夠經過編輯軟件源的方式獲取各個版本的軟件包。例如官方並無將測試版本的軟件源置爲可用,你能夠經過如下方式開啓。同理能夠開啓各類測試版本等。
# vim /etc/yum.repos.d/docker-ce.repo
# 將 [docker-ce-test] 下方的 enabled=0 修改成 enabled=1
#
# 安裝指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
# Loading mirror speeds from cached hostfile
# Loaded plugins: branch, fastestmirror, langpacks
# docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
# docker-ce.x86_64 17.03.1.ce-1.el7.centos @docker-ce-stable
# docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
# Available Packages
# Step2 : 安裝指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]複製代碼
安裝校驗
root@iZbp12adskpuoxodbkqzjfZ:$ docker version
Client:
Version: 17.03.0-ce
API version: 1.26
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 07:52:04 2017
OS/Arch: linux/amd64
Server:
Version: 17.03.0-ce
API version: 1.26 (minimum version 1.12)
Go version: go1.7.5
Git commit: 3a232c8
Built: Tue Feb 28 07:52:04 2017
OS/Arch: linux/amd64
Experimental: false複製代碼
2)、docker的卸載命令
#1.查詢安裝過的包
yum list installed | grep docker
#2.刪除安裝的軟件包
yum -y remove containerd.io.x86_64 docker-ce.x86_64 docker-ce-cli.x86_64
#3.刪除鏡像/容器等rm -rf /var/lib/docker複製代碼
5、docker經常使用命令&操做
說明:咱們常常去docker hub上檢索鏡像的詳細信息,如鏡像的TAG。 :tag是可選的,tag表 示標籤,多爲軟件的版本,默認是latest 查看全部本地鏡像 刪除指定的本地鏡像
2.容器操做
6、安裝mysql操做實例
docker pull mysql【拉去鏡像】
參考docker hub 給出的啓動命令選擇相應的啓動方式
好比:
[root@localhost ~]# docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
ad10e4bc5c6a0f61cbad43898de71d366117d120e39db651844c0e73863b9434
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ad10e4bc5c6a mysql "docker-entrypoint.sh" 4 seconds ago Up 2 seconds 0.0.0.0:3306->3306/tcp mysql02
複製代碼
Navicat鏈接mysql數據庫報錯問題【client does not support authentication】
解決辦法:
更改host爲% user爲root的用戶的authentication_string
host爲%方便遠程鏈接
update user set authentication_string = 'root' where user = 'root' and host = '%';
update user set authentication_string = 'root' where user = 'root' and host = 'localhost';
若是還不行使用下面命令: alter user 'root'@'localhost' identified with mysql_native_password by '123456';
alter user 'root'@'%' identified with mysql_native_password by '123456';
docker run -it --name dubbo-admin -d --rm -p 8080:8080 tomcat
複製代碼
docker exec -i -t <docker_name> bash
複製代碼
#從主機複製到容器
sudo docker cp host_path(宿主機器路徑) containerID:container_path(容器路徑)
#從容器複製到主機
sudo docker cp containerID:container_path host_path
#例如
sudo docker cp /home/dubbo-admin-2.6.war 603140acbd3c:/usr/local/tomcat/webapps
複製代碼
#鏡像打包
docker commit -m "提交信息" -a "做者" ${CONTAINER_ID} ${NEW_IMAGE_NAME}
複製代碼