1. 程式人生 > 實用技巧 >1539. Kth Missing Positive Number

1539. Kth Missing Positive Number

1.獲取docker

1.1 解除安裝舊版本的docker

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

1.2 設定儲存庫

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

1.3 安裝docker

$ sudo yum install docker-ce docker-ce-cli containerd.io

2.docker命令

2.1 啟動docker

sudo systemctl start docker

2.2 列印docker版本

sudo docker version

3.docker-machine

  • 建立一臺安裝好docker的虛擬機器

3.1 檢視docker-machine命令

docker-machine

3.2 檢視是否有docker-machine

docker-machine version

3.3 建立demo

docker-machine create demo

3.4 檢視現有的demo

docker-machine ls

3.5 啟動demo

docker-machine ssh demo

3.5 刪除demo

docker-machine ssh demo

3.6 輸出demo的環境變數

docker-machine env demo

3.7 輸出demo的環境變數(遠端建立一臺安裝好docker的機器)

eval $(docker-machine env demo)

4. 獲取image的方式

4.1 Dockerfile

4.1.1Dockerfile的格式

FFROM XXX 系統的版本

LABEL XXX
基於那個底層IANGE實現

RUN XXX 要執行的程式和命令

EPOSE 暴露的介面

ENTRYPOINT image的入口

4.1.2 從registry獲取

5.image命令

4.1 檢視image

sudo docker image ls
docker image

4.1 刪除image

docker image rm id
docker image rm2 id

4.2 啟動image

docker run xxx

4.3檢視image的更多資訊

more Dockerfile

6.構建iamge

docker build -t xxx .

其中 .是在當前目錄查詢
xxx為自定義的image名字

7.Dockerfile語法

7.1 EUN&CMD&ENTRYPOINT 的區別

  • RUN:執行命令並建立Image Layer
  • CMD:設定容器啟動後預設執行的命令和引數
  • ENTRYPOINT:設定容器啟動時執行的命令

ENTRYPOINT

  • 讓容器以應用程式或者服務的形式執行
  • 不會被忽略,一定執行
  • 最佳實踐:寫一個shell指令碼作為entrypoint
CPOY docker-entrypoint.sh /usr/local/bin/
ENTRYPOINT["docker-entrypoint.sh"]

EXPOSE 27017
CMD["mongod"]

CMD

  • 容器啟動預設執行的命令
  • 如果docker run指定了其他命令,CMD命令被忽略
  • 如果定義了多個CMD,只有最後一個執行

FROM(源)

FROM scratch #製作base image
FROM centos #使用base image

LABEL(版本描述)

LABEL maintainer="xxx" 
LABEL version="1.0"

RUN(版本描述)

每次run都為一層image,為了避免無用分層,用 && 合併成一行,用 \ 換行讓命令更加美觀

RUN yum clean all
RUN apt-get install -y mysql-server= "${MYSQL_SERVER}"

WORKDIR(設定當前所在的目錄)

WORKDIR /test #如果沒有會自動建立test
WORKDIR demo
WORKDIR pws 輸出/test/demo

ADD and COPY(新增本地檔案)

ADD hello / 新增hello到根目錄裡面去,/表示根目錄
ADD test.tar.gz / #新增到根目錄並且解壓

聯合使用

WORKDIR /root
ADD hello test/   #/root/test/hello

ENV(設定常量)

ENV MYSQL_VERSION 5.6 #設定常量

7.container

7.1 命令

當前本地正在執行的容器
docker container ls
本地執行過的容器
docker container ls -a
docekr ps -a
刪除container

1

docker container rm id

2

docker rm id
列舉containerid
docker container ls -aq
刪除列舉containerid
docker -rm $(docekr container ls -aq)
列舉某個屬性的容器
docker container ls -f "status=exited"
刪除某個屬性的容器
docker rm $(docekr container ls -f "status=exited" -aq)
儲存修改後的container
docker container commit

簡寫

docker commit

7.2 互動式執行容器

docker run -it centos