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