Docker使用

一、Docker簡(jiǎn)介

Docker 是一個(gè)開源的應(yīng)用容器引擎,基于Go 語言并遵從 Apache2.0 協(xié)議開源。

Docker 可以讓開發(fā)者打包他們的應(yīng)用以及依賴包到一個(gè)輕量級(jí)、可移植的容器中,然后發(fā)布到任何流行的 Linux 機(jī)器上,也可以實(shí)現(xiàn)虛擬化。

容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口(類似 iPhone 的 app)更重要的是容器性能開銷極低。

Docker支持將軟件編譯成鏡像;在鏡像中支持各種軟件配置好并發(fā)布,其他使用者可以直接使用配置好的鏡像。運(yùn)行中的鏡像稱之為容器,容器啟動(dòng)速度很快。類似于封裝好的Windows系統(tǒng),通過U盤直接安裝即可,不需要進(jìn)行系統(tǒng)配置軟件。

Docker的應(yīng)用場(chǎng)景:

  • Web應(yīng)用的自動(dòng)化打包發(fā)布;
  • 自動(dòng)化測(cè)試和持續(xù)集成、發(fā)布;
  • 在服務(wù)型環(huán)境中部署調(diào)整數(shù)據(jù)庫(kù)或其他的后臺(tái)應(yīng)用;
  • 從頭編譯或者擴(kuò)展現(xiàn)有的 OpenShift 或 Cloud Foundry 平臺(tái)來搭建自己的 PaaS 環(huán)境。

Docker的優(yōu)點(diǎn):

  • 快速、一致性的交付應(yīng)用程序
  • 響應(yīng)式部署和擴(kuò)展
  • 充分利用虛擬機(jī)資源

二、Docker核心概念

Docker主機(jī)(Host):安裝了Docker程序的機(jī)器(Docker直接安裝在操作系統(tǒng)中)

Docker客戶端(Client):連接Docker主機(jī)進(jìn)行操作;

Docker容器(Container):鏡像啟動(dòng)后的實(shí)例,獨(dú)立運(yùn)行的一個(gè)或一組應(yīng)用;

Docker鏡像(Image):打包好的軟件,用于創(chuàng)建Docker容器的模板;

Docker倉(cāng)庫(kù)(Respository):用于保存打包好的軟件鏡像;

關(guān)系示意圖:

image
image

Docker的基本使用方式:

① 在機(jī)器中安裝Docker;

② 在Docker倉(cāng)庫(kù)中尋找這個(gè)軟件對(duì)應(yīng)的鏡像;

③ 使用Docker運(yùn)行鏡像,生成一個(gè)Docker容器;

④ 容器的啟動(dòng)或停止相當(dāng)于對(duì)軟件的啟動(dòng)和停止;

三、Docker安裝

在Linux中安裝Docker的步驟

1.檢查L(zhǎng)inux內(nèi)核版本,必須是3.10以上
uname -r
若Linux版本內(nèi)核不符合則需要升級(jí)軟件包和內(nèi)核
yum update

2.安裝docker
yum install docker

3.查看docker是否安裝成功
docker -v

4.啟動(dòng)docker容器
systemctl start docker

5.設(shè)置docker開機(jī)啟用
systemctl enable docker

6.停止docker
systemctl stop docker
復(fù)制代碼

設(shè)置docker使用阿里云鏡像加速

訪問阿里云鏡像加速器網(wǎng)址 :阿里云鏡像加速

image-20201113113047169

四、Docker常用操作

1. 鏡像操作

1.1 操作遠(yuǎn)程鏡像

① 查詢遠(yuǎn)程倉(cāng)庫(kù)鏡像

docker search [OPTIONS]

OPTIONS說明:

  • --automated:只列出 automated build類型的鏡像;
  • --no-trunc :顯示完整的鏡像描述;
  • -s :列出收藏?cái)?shù)不小于指定值的鏡像。

查詢docker遠(yuǎn)程倉(cāng)庫(kù)中的MySQL

[root@izuf6h7blj36dmxbmcj15wz ~]# docker search mysql
INDEX       NAME                                        DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/mysql                             MySQL is a widely used, open-source relati...   10111     [OK]       
docker.io   docker.io/mariadb                           MariaDB is a community-developed fork of M...   3711      [OK]       
docker.io   docker.io/mysql/mysql-server                Optimized MySQL Server Docker images. Crea...   738                  [OK]
docker.io   docker.io/percona                           Percona Server is a fork of the MySQL rela...   511       [OK]       
docker.io   docker.io/centos/mysql-57-centos7           MySQL 5.7 SQL database server                   84                   
docker.io   docker.io/mysql/mysql-cluster               Experimental MySQL Cluster Docker images. ...   77                   
docker.io   docker.io/centurylink/mysql                 Image containing mysql. Optimized to be li...   60                   [OK]
docker.io   docker.io/bitnami/mysql                     Bitnami MySQL Docker Image                      45                   [OK]
docker.io   docker.io/deitch/mysql-backup               REPLACED! Please use http://hub.docker.com...   41                   [OK]
......
復(fù)制代碼

② 拉取遠(yuǎn)程倉(cāng)庫(kù)中的鏡像

docker pull [OPTIONS] NAME[:TAG|@DIGEST]

OPTIONS說明:

  • -a :拉取所有 tagged 鏡像
  • --disable-content-trust :忽略鏡像的校驗(yàn),默認(rèn)開啟
  • TAG:用于指定版本號(hào)

拉取tomcat 7.0鏡像

[root@izuf6h7blj36dmxbmcj15wz ~]# docker pull tomcat:7.0
Trying to pull repository docker.io/library/tomcat ... 
7.0: Pulling from docker.io/library/tomcat
e4c3d3e4f7b0: Pull complete 
101c41d0463b: Pull complete 
8275efcd805f: Pull complete 
751620502a7a: Pull complete 
a59da3a7d0e7: Pull complete 
5ad32ac1e527: Pull complete 
27c13473e3bd: Pull complete 
717370f5d395: Pull complete 
84d544041c3b: Pull complete 
4cce74688a50: Pull complete 
Digest: sha256:9c86a5a1af6f7bdc946a28a39b7f05044abd5eee2eb8cf56b55938c8618c85cb
Status: Downloaded newer image for docker.io/tomcat:7.0
復(fù)制代碼

docker官方鏡像倉(cāng)庫(kù) Docker官方鏡像倉(cāng)庫(kù)中會(huì)介紹使用方法,可以按照官方文檔的說明進(jìn)行操作。

1.2 管理本地鏡像

① 查看本地鏡像列表

docker images [OPTIONS] [REPOSITORY[:TAG]]

OPTIONS說明:

  • -a :列出本地所有的鏡像(含中間映像層,默認(rèn)情況下,過濾掉中間映像層);
  • --digests :顯示鏡像的摘要信息;
  • f :顯示滿足條件的鏡像;
  • --format :指定返回值的模板文件;
  • --no-trunc :顯示完整的鏡像信息;
  • -q :只顯示鏡像ID。

查看本地倉(cāng)庫(kù)的鏡像

[root@izuf6h7blj36dmxbmcj15wz ~]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
docker.io/memcached   latest              804901da629f        38 hours ago        82.3 MB
docker.io/tomcat      7.0                 ae42daf81b8c        2 days ago          533 MB
docker.io/mysql       5.7.32              1b12f2e9257b        6 days ago          448 MB
復(fù)制代碼

② 刪除本地鏡像列表

docker rmi [OPTIONS] IMAGE [IMAGE...]

OPTIONS說明:

  • -f :強(qiáng)制刪除;
  • --no-prune :不移除該鏡像的過程鏡像,默認(rèn)移除;

刪除本地倉(cāng)庫(kù)中的tomcat

[root@izuf6h7blj36dmxbmcj15wz ~]# docker rmi tomcat:7.0
Untagged: tomcat:7.0
Untagged: docker.io/tomcat@sha256:9c86a5a1af6f7bdc946a28a39b7f05044abd5eee2eb8cf56b55938c8618c85cb
Deleted: sha256:ae42daf81b8c5fd4b2f009d277d062681171d8d84c9f174aba08f6dbd47ed857
Deleted: sha256:3f394bd52132d1cf758651758ac12ebf02b721921b524123ead1e874a1ed9bd6
Deleted: sha256:1174c29e4d812f6dd04484ae909d5c4451fc7d4ecb8cd0934930876ad68985de
Deleted: sha256:24fdd84b4adf4b922767e2b9d336c96fb31cab90c84fb34f9164f6587473e565
Deleted: sha256:984e8d35fe94a287a0bc4a45e8757c75e17e80c3f4fed0b9f9b0ec6b4b457ebb
Deleted: sha256:254cf71da09bbc16e304f925dee4270ac9069649dee8576423a6a77186ee0061
Deleted: sha256:3383e45b22b2b665b1a2604e375c1e7dc007c540e77d6367b1d7ba79ef0030d8
Deleted: sha256:d5d618196ec30fcdba1d210f135b4911b9dbdc79fdd729a9a9c3683a6a9b9308
Deleted: sha256:4bb57adf9037e4da45f2dbc0f84a7e9d8da6847bef3e63d09c8a9d8465f4d2c6
Deleted: sha256:5173011923d00f0fe606ecceda93ea88f17dc77e0b026df802c9aeb31bc1eac6
Deleted: sha256:9780f6d83e45878749497a6297ed9906c19ee0cc48cc88dc63827564bb8768fd
[root@izuf6h7blj36dmxbmcj15wz ~]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
docker.io/memcached   latest              804901da629f        38 hours ago        82.3 MB
docker.io/mysql       5.7.32              1b12f2e9257b        6 days ago          448 MB
復(fù)制代碼

2. 容器操作

2.1 容器生命周期管理

① 創(chuàng)建一個(gè)容器并運(yùn)行命令

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS說明:

  • -a stdin: 指定標(biāo)準(zhǔn)輸入輸出內(nèi)容類型,可選 STDIN/STDOUT/STDERR 三項(xiàng);
  • -d: 后臺(tái)運(yùn)行容器,并返回容器ID;
  • -i: 以交互模式運(yùn)行容器,通常與 -t 同時(shí)使用;
  • -P: 隨機(jī)端口映射,容器內(nèi)部端口隨機(jī)映射到主機(jī)的端口
  • -p: 指定端口映射,格式為:主機(jī)(宿主)端口:容器端口
  • -t: 為容器重新分配一個(gè)偽輸入終端,通常與 -i 同時(shí)使用;
  • --name="nginx-lb": 為容器指定一個(gè)名稱;
  • --dns 8.8.8.8: 指定容器使用的DNS服務(wù)器,默認(rèn)和宿主一致;
  • --dns-search example.com: 指定容器DNS搜索域名,默認(rèn)和宿主一致;
  • -h "mars": 指定容器的hostname;
  • -e username="ritchie": 設(shè)置環(huán)境變量;
  • --env-file=[]: 從指定文件讀入環(huán)境變量;
  • --cpuset="0-2" or --cpuset="0,1,2": 綁定容器到指定CPU運(yùn)行;
  • -m :設(shè)置容器使用內(nèi)存最大值;
  • --net="bridge": 指定容器的網(wǎng)絡(luò)連接類型,支持 bridge/host/none/container: 四種類型;
  • --link=[]: 添加鏈接到另一個(gè)容器;
  • --expose=[]: 開放一個(gè)端口或一組端口;
  • --volume , -v: 綁定一個(gè)卷

Docker可以通過一個(gè)鏡像創(chuàng)建多個(gè)容器,各個(gè)容器之間互不干擾,可以同時(shí)運(yùn)行

② 啟動(dòng)、停止、刷新容器

docker start [OPTIONS] CONTAINER [CONTAINER...]

docker stop [OPTIONS] CONTAINER [CONTAINER...]

docker restart [OPTIONS] CONTAINER [CONTAINER...]

啟動(dòng)已被停止的容器mysql01

[root@izuf6h7blj36dmxbmcj15wz ~]# docker start mysql01
復(fù)制代碼

停止運(yùn)行中的容器mysql01

[root@izuf6h7blj36dmxbmcj15wz ~]# docker stop mysql01
復(fù)制代碼

重啟容器mysql01shell

[root@izuf6h7blj36dmxbmcj15wz ~]# docker restart mysql01
復(fù)制代碼

③ 刪除容器

docker rm [OPTIONS] CONTAINER [CONTAINER...]

OPTIONS說明:

  • -f:通過 SIGKILL 信號(hào)強(qiáng)制刪除一個(gè)運(yùn)行中的容器。
  • -l:移除容器間的網(wǎng)絡(luò)連接,而非容器本身。
  • -v:刪除與容器關(guān)聯(lián)的卷。

④ 創(chuàng)建容器但不啟動(dòng)

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]

語法類似與run的語法

⑤ 在運(yùn)行的容器中執(zhí)行命令

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

OPTIONS說明:

  • -d:分離模式: 在后臺(tái)運(yùn)行
  • -i:即使沒有附加也保持STDIN 打開
  • -t:分配一個(gè)偽終端

進(jìn)入到MySQL中操作

[root@izuf6h7blj36dmxbmcj15wz ~]# docker exec -it mysql-test /bin/bash
root@86afbc58bd27:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 5.7.32 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
復(fù)制代碼

2.2 容器管理

① 列出所有容器

docker ps [OPTIONS]

OPTIONS說明:

  • -a:顯示所有的容器,包括未運(yùn)行的。
  • -f:根據(jù)條件過濾顯示的內(nèi)容。
  • --format:指定返回值的模板文件。
  • -l:顯示最近創(chuàng)建的容器。
  • -n:列出最近創(chuàng)建的n個(gè)容器。
  • --no-trunc:不截?cái)噍敵觥?/li>
  • -q:靜默模式,只顯示容器編號(hào)。
  • -s:顯示總的文件大小。

② 查看容器運(yùn)行日志

docker logs [OPTIONS] CONTAINER

OPTIONS說明:

  • -f: 跟蹤日志輸出
  • --since:顯示某個(gè)開始時(shí)間的所有日志
  • -t: 顯示時(shí)間戳
  • --tail:僅列出最新N條容器日志

查看tomcat運(yùn)行日志

[root@izuf6h7blj36dmxbmcj15wz ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
b88d05801048        tomcat:9.0.39       "catalina.sh run"        17 minutes ago      Up 10 minutes       0.0.0.0:8090->8080/tcp              tomcat9.0
f7d14d73ec4a        memcached           "docker-entrypoint..."   5 days ago          Up 5 days           0.0.0.0:11211->11211/tcp            memcache
86afbc58bd27        mysql:5.7.32        "docker-entrypoint..."   5 days ago          Up 5 days           0.0.0.0:3306->3306/tcp, 33060/tcp   mysql-test
[root@izuf6h7blj36dmxbmcj15wz ~]# docker logs tomcat9.0
2020-11-03T01:45:26.595757000Z 03-Nov-2020 01:45:26.593 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/local/openjdk-11
2020-11-03T01:45:26.595845000Z 03-Nov-2020 01:45:26.593 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           11.0.9+11
2020-11-03T01:45:26.595933000Z 03-Nov-2020 01:45:26.593 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
2020-11-03T01:45:26.596033000Z 03-Nov-2020 01:45:26.593 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /usr/local/tomcat
2020-11-03T01:45:26.605849000Z 03-Nov-2020 01:45:26.600 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /usr/local/tomcat
2020-11-03T01:45:26.636942000Z 03-Nov-2020 01:45:26.634 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.lang=ALL-UNNAMED
2020-11-03T01:45:26.637118000Z 03-Nov-2020 01:45:26.634 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.base/java.io=ALL-UNNAMED
2020-11-03T01:45:26.637215000Z 03-Nov-2020 01:45:26.634 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
2020-11-03T01:45:26.637307000Z 03-Nov-2020 01:45:26.634 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
2020-11-03T01:45:26.637411000Z 03-Nov-2020 01:45:26.634 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
2020-11-03T01:45:26.637510000Z 03-Nov-2020 01:45:26.634 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
2020-11-03T01:45:26.637603000Z 03-Nov-2020 01:45:26.634 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
2020-11-03T01:45:26.637691000Z 03-Nov-2020 01:45:26.634 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
2020-11-03T01:45:26.637780000Z 03-Nov-2020 01:45:26.635 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
2020-11-03T01:45:26.637897000Z 03-Nov-2020 01:45:26.635 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat
2020-11-03T01:45:26.638002000Z 03-Nov-2020 01:45:26.635 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat
2020-11-03T01:45:26.638094000Z 03-Nov-2020 01:45:26.635 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
2020-11-03T01:45:26.654483000Z 03-Nov-2020 01:45:26.652 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded Apache Tomcat Native library [1.2.25] using APR version [1.6.5].
......
復(fù)制代碼

查看全部容器

[root@izuf6h7blj36dmxbmcj15wz ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
f7d14d73ec4a        memcached           "docker-entrypoint..."   43 hours ago        Up 43 hours         0.0.0.0:11211->11211/tcp            memcache
86afbc58bd27        mysql:5.7.32        "docker-entrypoint..."   46 hours ago        Up 45 hours         0.0.0.0:3306->3306/tcp, 33060/tcp   mysql-test
復(fù)制代碼

docker操作命令:Docker 命令大全

3. 安裝MySQL

① 查詢遠(yuǎn)程MySQL鏡像

[root@izuf6h7blj36dmxbmcj15wz ~]# docker search mysql
INDEX       NAME                                        DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/mysql                             MySQL is a widely used, open-source relati...   10111     [OK]       
docker.io   docker.io/mariadb                           MariaDB is a community-developed fork of M...   3711      [OK]       
docker.io   docker.io/mysql/mysql-server                Optimized MySQL Server Docker images. Crea...   739                  [OK]
docker.io   docker.io/percona                           Percona Server is a fork of the MySQL rela...   511       [OK]       
docker.io   docker.io/centos/mysql-57-centos7           MySQL 5.7 SQL database server                   84                   
docker.io   docker.io/mysql/mysql-cluster               Experimental MySQL Cluster Docker images. ...   77                   
docker.io   docker.io/centurylink/mysql                 Image containing mysql. Optimized to be li...   60                   [OK]
docker.io   docker.io/bitnami/mysql                     Bitnami MySQL Docker Image                      45                   [OK]
docker.io   docker.io/deitch/mysql-backup               REPLACED! Please use http://hub.docker.com...   41                   [OK]
docker.io   docker.io/tutum/mysql                       Base docker image to run a MySQL database ...   35                   
docker.io   docker.io/databack/mysql-backup             Back up mysql databases to... anywhere!         31                   
docker.io   docker.io/prom/mysqld-exporter                                                              31                   [OK]
docker.io   docker.io/schickling/mysql-backup-s3        Backup MySQL to S3 (supports periodic back...   29                   [OK]
docker.io   docker.io/linuxserver/mysql                 A Mysql container, brought to you by Linux...   26                   
docker.io   docker.io/centos/mysql-56-centos7           MySQL 5.6 SQL database server                   20                   
docker.io   docker.io/circleci/mysql                    MySQL is a widely used, open-source relati...   19                   
docker.io   docker.io/mysql/mysql-router                MySQL Router provides transparent routing ...   17                   
docker.io   docker.io/arey/mysql-client                 Run a MySQL client from a docker container      15                   [OK]
docker.io   docker.io/fradelg/mysql-cron-backup         MySQL/MariaDB database backup using cron t...   10                   [OK]
docker.io   docker.io/openshift/mysql-55-centos7        DEPRECATED: A Centos7 based MySQL v5.5 ima...   6                    
docker.io   docker.io/devilbox/mysql                    Retagged MySQL, MariaDB and PerconaDB offi...   3                    
docker.io   docker.io/ansibleplaybookbundle/mysql-apb   An APB which deploys RHSCL MySQL                2                    [OK]
docker.io   docker.io/jelastic/mysql                    An image of the MySQL database server main...   1                    
docker.io   docker.io/widdpim/mysql-client              Dockerized MySQL Client (5.7) including Cu...   1                    [OK]
docker.io   docker.io/monasca/mysql-init                A minimal decoupled init container for mysql    0 
復(fù)制代碼

② 拉取MySQL鏡像

可以指定安裝鏡像的版本號(hào),如果不指定的話默認(rèn)拉取最新的版本

[root@izuf6h7blj36dmxbmcj15wz ~]# docker pull mysql
Using default tag: latest
Trying to pull repository docker.io/library/mysql ... 
latest: Pulling from docker.io/library/mysql
bb79b6b2107f: Already exists 
49e22f6fb9f7: Already exists 
842b1255668c: Already exists 
9f48d1f43000: Already exists 
c693f0615bce: Already exists 
8a621b9dbed2: Already exists 
0807d32aef13: Already exists 
a56aca0feb17: Pull complete 
de9d45fd0f07: Pull complete 
1d68a49161cc: Pull complete 
d16d318b774e: Pull complete 
49e112c55976: Pull complete 
Digest: sha256:8c17271df53ee3b843d6e16d46cff13f22c9c04d6982eb15a9a47bd5c9ac7e2d
Status: Downloaded newer image for docker.io/mysql:latest
復(fù)制代碼

查看已經(jīng)獲取的本地鏡像倉(cāng)庫(kù)

[root@izuf6h7blj36dmxbmcj15wz ~]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
docker.io/memcached   latest              804901da629f        2 days ago          82.3 MB
docker.io/mysql       5.7.32              1b12f2e9257b        7 days ago          448 MB
docker.io/mysql       latest              db2b37ec6181        7 days ago          545 MB
復(fù)制代碼

③ 創(chuàng)建并運(yùn)行MySQL容器

[root@izuf6h7blj36dmxbmcj15wz ~]# docker run --name=mysql-test -it -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.32
[root@izuf6h7blj36dmxbmcj15wz ~]# 86afbc58bd27
復(fù)制代碼

--name:指定容器名稱

-it:創(chuàng)建終端并以交互模式運(yùn)行容器

-p:指定端口映射格式為 主機(jī)(宿主)端口:容器端口

-e:設(shè)置環(huán)境變量

-d:后臺(tái)運(yùn)行容器,并返回ID

④ 查看正在運(yùn)行的容器

[root@izuf6h7blj36dmxbmcj15wz ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                               NAMES
f7d14d73ec4a        memcached           "docker-entrypoint..."   45 hours ago        Up 45 hours         0.0.0.0:11211->11211/tcp            memcache
86afbc58bd27        mysql:5.7.32        "docker-entrypoint..."   47 hours ago        Up 47 hours         0.0.0.0:3306->3306/tcp, 33060/tcp   mysql-test
復(fù)制代碼

⑤ 進(jìn)入MySQL容器操作

[root@izuf6h7blj36dmxbmcj15wz ~]# docker exec -it mysql-test /bin/bash
root@86afbc58bd27:/# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 28
Server version: 5.7.32 MySQL Community Server (GPL)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
復(fù)制代碼

若在云服務(wù)中操作,注意打開服務(wù)器3306端口

image-20201030094640333

在服務(wù)器中部署完成后使用navicat客戶端連接

image-20201030095227926

使用Docker安裝其他的鏡像與安裝MySQL操作基本相似,恭喜你學(xué)會(huì)了Docker操作ヾ(≧▽≦*)o

作者:RealPluto
鏈接:https://juejin.cn/post/6962057970066653191
來源:掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請(qǐng)聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請(qǐng)注明出處。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容