docker筆記

安裝docker

1.注意安裝ce

yum install -y yum-utils device-mapper-persistent-data vm2

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

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

systemctl enable docker

systemctl start docker

2.編輯daemon.json,添加鏡像地址

vi /etc/docker/daemon.json
添加以下代碼:
{"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]}

systemctl daemon-reload

systemctl restart docker

3.啟動與停止docker

開啟:systemctl start docker 
狀態(tài):systemctl status docker 
停止:systemctl stop docker    
重啟:systemctl restart docker 
開機啟動:systemctl enable docker 
查看概要:docker --help

4.鏡像相關命令

查看鏡像:docker images
搜索鏡像:docker search centos
拉取鏡像:docker pull centos:7
刪除鏡像:docker rmi 鏡像ID
刪除所有鏡像:docker rmi `docker images -q`

5.容器相關命令

查看正在運行的容器:docker ps
查看所有容器:docker ps -a
查看最后一次運行的容器:docker ps -l
查看停止的容器:docker ps -f status=exited
創(chuàng)建容器:docker run 
    (1)交互式方式創(chuàng)建容器:
        docker run -it --name=容器名稱 鏡像名稱:標簽 /bin/bash
        docker run -it --name=mycentos centos:7 /bin/bash 之后會進入容器內(nèi)
        退出當前容器:exit,當退出,容器自動停止
     (2)守護式方式創(chuàng)建容器:
        docker run -di --name=容器名稱 鏡像名稱:標簽
        docker run -di --name=mycentos2 centos:7 之后不會進入容器內(nèi)
        進入方式:docker exec -it mycentos2 /bin/bash
        退出當前容器:exit,當退出,容器還在運行
停止與啟動容器:docker stop/start
     (1)停止:docker stop 容器名稱(或者容器ID)
             docker stop centos2
     (2)啟動:docker start 容器名稱(或者容器ID)
             docker start centos2
文件拷貝:
     (1)文件拷貝到容器:docker cp 需要拷貝的文件或目錄 容器名稱:容器目錄
                      docker cp daemon.json mycentos2:/usr/local
     (2)文件從容器拷貝出來:docker cp 容器名稱:容器目錄 需要拷貝的文件或目錄
                          docker cp mycentos2:/usr/local/daemon.json daemon.json
目錄掛載:
    創(chuàng)建容器 添加-v參數(shù) 后面為 宿主機目錄:容器目錄,例如:
    docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=mycentos3 centos:7
查看容器的ip地址:
    docker inspect 容器名稱(容器id)
    docker inspect --format='{{.NetworkSettings.IPAddress}}' 容器名稱(容器id)
刪除容器:
    docker rm 容器名稱(容器id)

6.應用部署

6.1 mysql部署

(1)拉取mysql鏡像
    docker pull centos/mysql-57-centos7
(2)創(chuàng)建容器
    docker run -di --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7 --lower_case_table_names=1
(3)進入mysql容器
    docker exec -it tensquare_mysql /bin/bash
(4)登錄mysql
    mysql -u root -p
(5)遠程登錄mysql:連接宿主機ip,指定端口為33306
    mysql-8.0.x連接報錯問題:https://www.cnblogs.com/zhurong/p/9898675.html

6.2 tomcat部署

(1)拉取tomcat鏡像
    docker pull tomcat:7-jre7
(2)創(chuàng)建容器
    docker run -di --name=mytomcat -p 80:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat
(3)發(fā)布應用
    cd /usr/local/webapps

6.3 Nginx部署

(1)拉取
    docker pull nginx
(2)創(chuàng)建容器
    docker run -di --name=mynginx -p 80:80 nginx
(3)發(fā)布應用
    docker exec -it mynginx /bin/bash
    cd /etc/engix
    cat nginx.conf
    /etc/nginx/conf.d#
    docker cp myhtml mynginx:/usr/share/nginx/

6.4 Redis部署

(1)拉取
    docker pull redis
(2)創(chuàng)建容器
    docker run -di --name=redis -p 6379:6379 redis

7.遷移與備份

(1)容器保存為鏡像:
    docker commmit mynginx mynginx_i
(2)鏡像備份
    docker save -o mynginx.tar mynginx_i
(3)鏡像回復與遷移
    docker load -i mynginx.tar
    執(zhí)行后再次查看鏡像,可以看到鏡像已經(jīng)恢復

8.Dockerfile

8.1 Dockerfile 常用命令:

1)FROM  : FROM 鏡像指令指明了當前鏡像繼承的基鏡像,編譯當前鏡像時會自動下載基鏡像 ,如果不指定映像url 則從docker hub 上獲取。 e.g : FROM ubuntu 
2)MAINTAINER :MAINTAINER 指令 指定了當前鏡像的作者及聯(lián)系方式。e.g : MAINTAINER: caiqiufang
3)RUN : RUN 指令可以在當前鏡像上執(zhí)行Linux  命令并形成一個新的層,RUN 是編譯時(build) 的動作,在docker 命令中運行的shell 命令,等價于docker run <image> <command> 示例可以是如下兩種,CMD 和 ENTRYPOINT也是如此 e.g : RUN /bin/bash -c "echo helloworld"    or   RUN {"/bin/bash", "-c" ,"echo helloworld"}
4)CMD : CMD 指令指明了啟動鏡像容器時的默認行為(docker 容器運行時的默認命令),一個Dockerfile 里只有一個CMD 指令,CMD 指令里設定的命令可以在運行鏡像時使用參數(shù)覆蓋,CMD 是 運行時(run)的動作。 e.g :  CMD echo "this is a test"  正如上所說可以被運行時的參數(shù)覆蓋,如下: docker  run -d imag_name echo "this is not a test"。
5)EXPOSE : 指明了鏡像運行時的容器必須監(jiān)聽的端口  e.g : EXPOSE 8080
6) ENV : 用來設置環(huán)境變量  e.g :  ENV myname = caiqiufang   or ENV myname  caiqiufang。
7)ADD : ADD 指令是指從當前工作目錄復制文件到鏡像目錄中去。 e.g : ADD test.txt   /mydir/
8) ENTRYPOINT : ENTRYPOINT 指令可以讓容器像一個可執(zhí)行程序一樣運行,這樣鏡像運行時可以像軟件一樣 接收參數(shù)執(zhí)行。ENTRYPOINT 是運行(run)時的動作  e.g : ENTRYPOINT {"/bin/echo"}  ,那么我們可以向鏡像傳遞參數(shù)運行 docker run  -d image_name  "this is a test"
9) WORKDIR <path>: 指定RUN, CMD, ENTRYPOINT  等命令運行的工作路徑 

8.2 使用腳本創(chuàng)建鏡像

sudo docker pull centos:centos7
sudo cd /usr/local/src
sudo tar zxf jdk-8u201-linux-x64.tar.gz
sudo ls
    jdk1.8.0_201  jdk-8u201-linux-x64.tar.gz
sudo mkdir /usr/local/jdk
sudo cd /usr/local/jdk
sudo cp ../src/jdk-8u201-linux-x64.tar.gz ./
sudo ls
    jdk-8u201-linux-x64.tar.gz
sudo vi Dockerfile
    FROM centos:centos7
    MAINTAINER tom
    RUN mkdir /usr/local/jdk
    WORKDIR /usr/local/jdk
    ADD jdk-8u201-linux-x64.tar.gz /usr/local/jdk
    ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_201
    ENV JRE_HOME /usr/local/jdk/jdk1.8.0_201/jre
    ENV PATH $JAVA_HOME/bin:$PATH
sudo docker build -t jdk1.8 .       

8.3 Docker私有倉庫

https://www.cnblogs.com/naixin007/p/10952813.html
(1)拉取私有倉庫鏡像
    docker pull registry
(2)啟動私有倉庫
    docker run -di --name=registry -p 5000:5000 registry
(3)打開瀏覽器輸入:http://192.168.133.10:5000/v2/_catalog看到{"repositories":[]}表示私有倉庫搭建成功,并且為空
(4)修改daemon.json
    vi /etc/docker/daemon.json
    添加以下內(nèi)容,保存退出,此步用于讓docker信任私有倉庫
    {"insecure-registries":["192.168.133.10:5000"]}
(5)重啟docker服務
    systemctl restart docker

8.4 Docker私有倉庫鏡像上傳

(1)給鏡像打標簽
    docker tag jdk1.8 192.168.133.10:5000/jdk1.8
(2)上傳鏡像
    docker push jdk1.8 192.168.133.10:5000/jdk1.8
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

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

  • docker命令: Docker的三大核心概念:鏡像、容器、倉庫 鏡像:類似虛擬機的鏡像、用俗話說就是安裝文件。 ...
    balabala19閱讀 315評論 0 0
  • 1 Docker簡介 1.1 什么是虛擬化 ? 在計算機中,虛擬化(英語:Virtualization)是一種...
    hyperdebug閱讀 370評論 0 1
  • 1、Docker簡介 開源的應用容器引擎 打包環(huán)境和應用到一個輕量級,可移植的容器中,發(fā)布到任何 Linux 機器...
    Assassin007閱讀 365評論 0 0
  • 摘自《Docker 容器與容器云(第2版)》點擊查看我的博客原文 1. 從容器到容器云 1.1 云計算平臺 經(jīng)典云...
    蘇易北閱讀 2,271評論 0 6
  • ![Flask](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAW...
    極客學院Wiki閱讀 7,767評論 0 3

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