docker常用管理命令
1.鏡像常用管理命令
[root@linux-node1 /]# docker image --help # 查看docker使用方法
[root@linux-node1 /]# docker image ls # 查看本地下載的所有鏡像
[root@linux-node1 /]# docker image rm nginx # 刪除這個鏡像
[root@linux-node1 /]# docker image inspect nginx # 查看nginx鏡像詳細信息
2.運行容器常用管理命令
[root@linux-node1 /]# docker run -itd nginx # 在後臺啓動一個docker容器
[root@linux-node1 /]# docker inspect 5a3ad030a621 # 查看docker運行容器的詳細信息
[root@linux-node1 /]# curl http://172.17.0.2 # 查看端口
[root@linux-node1 /]# docker run -itd --name=web2 -p 192.168.56.11:8800:80 nginx
使用--itd參數(指定後臺啓動這個容器),--name=web2(指定這個web容器的名字叫web2)
-d: 後臺運行容器,並返回容器ID;
-i: 以交互模式運行容器,通常與 -t 同時使用;
-t: 爲容器重新分配一個僞輸入終端,通常與 -i 同時使用;
-P: 隨機端口映射,容器內部端口隨機映射到主機的高端口
-p: 指定端口映射,格式爲:主機(宿主)端口:容器端口
--name="nginx-lb": 爲容器指定一個名稱
--dns 8.8.8.8: 指定容器使用的DNS服務器,默認和宿主一致;
[root@linux-node1 /]# docker cec -it c9b7a480ee68 bash # 進入docker環境
dockerfile編寫和應用(真實企業應用)
dockerfile的作用
利用官方原始進行構建我們自己的鏡像
1.dockerfile最簡單使用
# Dockerfile
FROM nginx
COPY index.html /usr/share/nginx/html/index.html
# index.html
<h1>Hello 1904 logo</h1>
使用dockerfile構建我們自己的鏡像
[root@linux-node1 nginx_v1]# docker build -t nginx:1904 -f Dockerfile .
build # 構建指令
-t nginx:1904 # 指定鏡像的版本號(鏡像名稱:tag)
[root@linux-node1 nginx_v1]# docker image ls # 查看我們構建的鏡像
[root@linux-node1 nginx_v1]# docker run -itd --name 1904 -p 192.168.56.11:1904:80 nginx:1904 # 使用我們鏡像運行一個docker容器
http://192.168.56.11:1904 # 通過宿主機的映射ip地址+端口號就可以訪問docker容器
2.dockerfile的其他語法
'''1.DOckerfile常用命令 '''
FROM python:3.6 # 指定拉取鏡像版本
ENV PYTHONUNBUFFERED 1 # 不緩衝stdin、stdout和stderr,直接把輸出重定向到文件
MAINITAINER zhangsan # 指定作者
RUN mkdri /code # 運行的linux命令
WORKDIR /code # 指定項目工作根路徑
ADD . /code/ # 將宿主機文件複製到鏡像中
COPY dj.conf /etc/nginx/conf.d # docker內部文件拷貝
VOLUME ["/data1","/data2"] # 將宿主機文件夾掛載到容器中
EXPOSE 8080 # 暴露端口
CMD ["sh","/code/start.sh"] # 容器啓動時要運行的命令
CMD ["python", "manage.py", "runserver", "0:8000"]
'''2.生成鏡像並運行容器'''
docker build -t nginx:v1 -f Dockerfile-nginx . # 使用Dockerfile-nginx文件生成鏡像 nginx:v1
docker push linux-node4.example.com/test/nginx:v1 # 推送鏡像到harbor中
docker run -d -p 192.168.56.14:8000:8080 nginx:v1 # 運行docker容器