docker容器

1. 啟動容器并獲取鏡像

docker  run -d -p 80:80 httpd #后臺啟動一個httpd的服務(wù)
docker ps -a # 查看

2. 刪除容器

刪除所有的容器
docker rm -f `docker ps -qa`

批量刪除已關(guān)閉
docker rm -v $(docker ps -aq -f status=exited)

刪除指定容器
docker rm -f 容器ID/name

3. 基于centos6.9開啟一個容器,取名test,

docker run -it --name "test" centos:6.9

4. 將test容器制作為一個鏡像

docker commit test wzj/centos:6.9

5. 制作帶有centos7.5+vim+net-tools+iproute+sshd的鏡像

1. 啟動并進入一個新容器
docker run -it --name "tests" centos:7.5.1804

2. 使用ftp優(yōu)化yum源, ftp的路徑不要錯了
mv /etc/yum.repos.d/*.repo /tmp
echo -e "[ftp]\nname=ftp\nbaseurl=ftp://10.0.0.100/pub/centos7\ngpgcheck=0">/etc/yum.repos.d/ftp.repo

3. 安裝ssh
yum install -y vim net-tools  iproute   openssh-*

4. 啟動ssh
 yum install -y sed 
 mkdir /var/run/sshd
 echo 'UseDNS no' >> /etc/ssh/sshd_config
 sed -i -e '/pam_loginuid.so/d' /etc/pam.d/sshd
 echo 'root:123456' | chpasswd
 /usr/bin/ssh-keygen -A
 
 /usr/sbin/sshd -D 
 
  以上操作做完后會一直不退出, 按住以下鍵退至宿主機并不關(guān)閉容器
  ctrl p  q
  
5. 基于這個容器制作鏡像
docker commit tests wzj/centos7_sshd:v2

6. dockerfile的應(yīng)用

我們發(fā)現(xiàn), 安裝完ssh的容器制作的鏡像還是很大, 使用dockerfile, 記錄操作步驟, 就可以了

vim  dockerfile

FROM centos:7.5.1804
RUN mv /etc/yum.repos.d/*.repo /tmp
RUN echo -e "[ftp]\nname=ftp\nbaseurl=ftp://10.0.0.100/pub/centos7\ngpgcheck=0">/etc/yum.repos.d/ftp.repo
RUN yum install -y openssh-server
RUN yum install -y openssh-clients
RUN yum install net-tools* -y
RUN yum install iproute-* -y
RUN mkdir /var/run/sshd
RUN echo 'UseDNS no' >> /etc/ssh/sshd_config
RUN sed -i -e '/pam_loginuid.so/d' /etc/pam.d/sshd
RUN echo 'root:123456' | chpasswd
RUN /usr/bin/ssh-keygen -A
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]

這樣運行dockerfile就可以搭建好容器環(huán)境了

docker build -t "oldguo/centos7_sshd:v3" /opt/dockerfile

7. 數(shù)據(jù)卷的使用(持久化)

7.1 首先利用dockerfile起一個容器并安裝運行Redis

創(chuàng)建一個dockfile目錄,將宿主機的Redis安裝目錄壓縮放到這里,
    dockerfile文件放這里, Redis配置文件放這里
    
mkdir -p /opt/dockfile/redis3
tar -cvf redis-3.2.10.tar  redis-3.2.10

redis的配置文件
vim redis.conf
port 6379
logfile /test/redis.log
dir /test/
dbfilename dump.rdb
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfsync always
requirepass 123

寫dockerfile
vim dockerfile
FROM centos:7.5.1804
VOLUME ["/test"]
COPY redis-3.2.10.tar /data/
COPY redis.conf /test/
RUN tar -xf /data/redis-3.2.10.tar -C /data/
EXPOSE 6379
CMD ["/data/redis-3.2.10/src/redis-server","/test/redis.conf"]

運行docker, 后面有一個點不能少, 代表dockerfile就在當(dāng)前目錄下
docker build -t "wzj/centos_redis:v1" . 
運行裝好Redis的容器
docker  run -d -p 16380:6379 -v /opt/Registry:/var/lib/registry wzj/centos_redis:v1

查看數(shù)據(jù)所在目錄
docker inspect 容器ID/容器名
這里面的Mounts下面的Source值為路徑,cd進去就可以了

7. 容器管理

容器的類型
    工具類:會進入到容器中, 例如要使用vim
        docker run -it --name="test_vim"  3fe2fe0dab2e /bin/bash
    服務(wù)類:只需要后臺啟一個服務(wù)就行,不用進入容器,例如開啟一個nginx服務(wù) 
        docker run -d -p 8080:80 --name="discuz" nginx:1.14
        
查看所有容器 docker ps -a
關(guān)閉一個容器 docker stop centos6.9
強制關(guān)閉一個容器 docker kill nginx 
啟動一個關(guān)閉了的容器 docker start -i centos6.9
重啟一個容器 docker restart centos6.9
進入啟動的容器: docker attach 容器ID/name
查看容器的詳細信息 docker inspect 容器ID/name
查看容器中運行的進程信息 docker top 容器ID/name

8. 制作私有Registry倉庫

1.配置私有倉庫
docker run -d -p 5000:5000 --restart=always --name registry -v /opt/Registry:/var/lib/registry  registry

vim /etc/docker/daemon.json

{
   "registry-mirrors": ["https://68rmyzg7.mirror.aliyuncs.com"],
   "insecure-registries": ["10.0.0.100:5000"]
}

systemctl  restart docker

2. 制作本地鏡像并push
docker tag nginx 10.0.0.100:5000/oldguo/nginx:v1
docker images
docker push 10.0.0.100:5000/oldguo/nginx:v1

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

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

  • 查看系統(tǒng)信息 幫助: 我們可以看到運行結(jié)果如下圖所示。如果之前有學(xué)習(xí)過 docker 相關(guān)知識的同學(xué),可能會發(fā)現(xiàn)一...
    夸克星閱讀 1,280評論 0 0
  • 一、docker介紹 docker的優(yōu)勢 1、更高效的利用系統(tǒng)資源由于容器不需要進行硬件虛擬以及運行完整操作系統(tǒng)等...
    Mr_Du_Biao閱讀 719評論 0 0
  • 1.人生什么最重要?答案也很直接: 選擇最重要 。就是這樣,人生的頭等大事只有一個,“ 選擇 ”。再進一步仔細...
    大成者閱讀 157評論 0 0
  • 四川又地震了,轉(zhuǎn)眼良辰美景就變成滿目瘡痍,難以表述的痛。災(zāi)難來臨的那一刻,只有幾分鐘甚至幾秒鐘的時間來反應(yīng),所以,...
    丫丫笑語閱讀 323評論 0 0
  • 親子日記第127篇:聚會日 2018年5月25日 星期五 晴 每周五都是我們班家長滿心期盼的日子,一是因為我...
    64fdf7a8ac71閱讀 324評論 0 0

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