<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ![](https://source.unsplash.com/random/1680x200) >### 鏡像 * `docker image`是一個極度精簡版的Linux程序運行環境,官網的java鏡像包括的東西更少,除非是鏡像疊加方式的如:centos+java7 * `docker image`是需要定制化build的一個安裝包,包括基礎鏡像+應用的二進制部署包 * `docker image`內不建議有運行期需要修改的配置文件 * `Dockerfile`用來創建一個自定義的image,包含了用戶指定的軟件依賴等。當前目錄下包含Dockerfile,使用命令build來創建新的image * `docker image`的最佳實踐之一是盡量重用和使用網上公開的基礎鏡像 >### 加速國內鏡像下載 修改配置文件`/etc/docker/daemon.json`,如果該文件沒有則進行創建: ``` [root@docker ~]# cat /etc/docker/daemon.json { "dns": ["192.168.101.2","8.8.8.8"], "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] } ``` 然后重啟docker `systemctl restart docker` >### 鏡像命令 * 搜索鏡像:`docker search nginx` > `nginx`為鏡像名稱(鏡像名稱如:centos、nginx、redis) * 拉取鏡像:`docker pull nginx` * 列出本地鏡像:`docker images(docker images --help)` > `docker image ls -a `同樣是列出鏡像(`docker image ls --help`查看) >### 容器 #### 概念 1、運行一個container的本身就是開啟一個具有獨立namespace的進程 2、進程有自己的網絡,文件系統等 3、docker通過run命令來啟動一個container運行一個container必須要指定一個image作為初始化的文件系統 4、對于不存在的image,docker會自動去registry里面下載對應的image,然后再運行container 5、在容器中是/bin/bash進程,也就是本機host上面的一個普通進程 6、如果image里面包含了CMD的命令,那么在啟動container的時候,不需要指定command,否則會使用指定的command來覆蓋image中的CMD 5、在容器中是/bin/bash進程,也就是本機host上面的一個普通進程 >### 前臺運行和后臺運行 默認的container是在前臺運行的,會綁定command進程的STDIN、STDOUT、STDERR到console上(在console上展現標準輸入、輸出和標準錯誤輸出) 可以通過`-d`的選項讓container運行在后臺。如果是在前臺運行,也可以通過-a {STDIN,STDOUT,STDERR}選擇需要綁定的IO 只選擇某一個標準展示在console上面 ``` $ docker run -t -a stdin ubuntu sh -c "while true;do echo hello world;sleep 2;done" 910777ab7d217b803fb6e5cb9ed9e80a2296814ac7449dceda7f72fbaf7a1fd5 ``` `-a stdin`:表示只執行了`stdin`(雖然在前臺運行,但是沒有指定stdout和stderr所以并沒有顯示輸出)可以通過logs來查看該容器的`stdout` 重新打開一個終端,查看當前容器ID,并且發硬容器日志 ``` $ docker ps CONTAINER ID IMAGE 910777ab7d21 ubuntu "sh -c 'while true;d…" 4 minutes ago Up 4 minutes $ docker logs 910777ab7d21 hello world hello world ``` 通過`attach`命令可以重新`attach`一個后臺運行的container,`attach`可以將后臺運行的切換到前臺 ``` $ docker attach 910777ab7d21 hello world hello world ``` 在后臺運行的情況下,`RUN`命令會返回一個容器的`uuid`,唯一標識container 可以通過`docker ps`來查看container的uuid和運行信息 可以通過指定`--name`的方式來指定container的名字,`name`必須唯一 #### `inspect`:可以查看container的更多信息 通過`docker inspect {container_id}`來獲取container的更多的信息,包括網絡,volume,實際在host上的進程id等信息 #### `log`:日志 通過logs命令可以看到container中command所指向進程的STDOUT,STDERR數據 ,可以進程排錯(`-d`后臺運行沒有輸出到console時,查看) #### 環境變量 通過`-e`參數,可以在運行container的時候添加系統環境變量 >### 網絡設置 docker使用bridge橋接的方式來實現container之間以及和外部的通信 ![](https://i.loli.net/2019/03/02/5c7a4d878060d.png) >### 命令 * 查看運行中的容器:`docker ps` * 查看所有容器:`docker ps -a` * 啟動一個容器 ``` # docker run --help Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Run a command in a new container # docker run 啟動一個容器并執行命令(容器是本機host的一個進程,如果進程沒有后續操作,那么狀態將是exited) ``` > 創建一個名稱為mycentos的container,并執行/bin/bash `docker run --name mycentos centos /bin/bash` >> `--name`:表示容器的name,后面的centos表示使用的哪個鏡像(鏡像name) >> `/bin/bash`:表示執行的command * 啟動容器:`docker start mycentos` https://www.cnblogs.com/jsonhc/p/7760144.html
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看