1. 程式人生 > 實用技巧 >docker環境安裝及執行

docker環境安裝及執行

docer環境的安裝部署

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

判斷docker是否安裝成功

# 從 Docker Hub 上下載helle-world映象
   sudo docker pull helle-world
# 執行該映象
   sudo docker run helle-world
# 輸出以下內容及為成功
   Hello from Docker!
This message shows that your installation appears to be working correctly.
   ......

製作docker映象--->編寫Dockerfile

# Dockerfile 樣例
FROM ubuntu:18.04         # 新增基礎映象
COPY . /run               # 將需要新增到映象的檔案放到run目錄下
# 操作指令放在Run後面執行,多個指令用&&分隔
RUN chmod -R 777 /run  &&\
        rpm -ivh *.rpm

ENV TZ=Asia/Shanghai      # 設定時區,推薦上海時區

EXPOSE 8080               # 暴露埠

WORKDIR /run/             # 切換工作目錄

CMD ["bash","start.sh"]   # docker映象生成並安裝到伺服器後,執行該命令,啟動系統,start.sh 即需要部署在docker中的程式的啟動指令碼

製作docker映象--->建立映象

# 將Dockerfile,start.sh,及需要上傳的檔案放到同一目錄(例:Dockerfile_D)
# 建立映象
sudo docker build -t <映象名> <Dockerfile_D路徑>
例: sudo docker build -t test_docker  /home/name/Dockerfile_D

啟動映象

sudo docker run -p 8080:8080 --restart=always --privileged=true -v /home/name/docker/dockershare:/run/test test_docker
# sudo docker run <映象名> 啟動該映象  
# -p 8080:8080  將docker容器的8080埠對映到主機的8080
# --restart=always 容器(比如服務類容器)因某種錯誤而停止執行時,能夠自動重啟
#  --privileged=true
# -v 建立docker 容器與實體機的共享資料夾
# /home/name/docker/dockershare 為實體機檔案加路徑,在該路徑下的檔案會出現在容器系統的/run/test資料夾中
# /run/test 為docker 容器檔案加路徑
# test_docker 為需要啟動的映象名稱

進入容器

# 檢視正在執行的容器
sudo docker ps        # 檢視正在執行的容器
sudo docker ps  -a    # 檢視所有容器 
# 進入容器
sudo docker exec -it <容器id> /bin/bash
例:sudo docker exec -it a404c6c174a2 /bin/bash

將容器提交為新的映象

sudo docker commit -a "作者" -m "描述" <映象id>  <映象名>
例:docker commit -a "name" -m "my test_docker" a404c6c174a2  test_docker

docker常用命令

https://www.hangge.com/blog/cache/detail_2402.html

遇到的問題

# docker ubuntu中安裝ping命令
    apt-get update
    apt-get upgrade
    apt-get install inetutils-ping  
# docker ubuntu中安裝db2時缺少libail.so.1
    apt-get install libaio1 libaio-dev
# docker ubuntu中安裝python3.7
    apt-get install python3.7   # 若系統版本太低可能不支援