Docker的简单使用
Docker
介紹
Docker的英文本意是“搬運工”,Docker搬運的是集裝箱(Container)可以成為容器,我們可以把WEB應用以及依賴庫打包進一個可移植的容器里傳播,解決了應用部署的平臺兼容性問題,同時她也是一種輕量級的虛擬化技術可以做到秒級啟動一個容器(類似小虛擬機,區別啟動快、可以傳播);
鏡像是docker 創建、啟動一個容器的文件系統,這個文件系統包含依賴包、命令工具、APP等;
安裝和開啟服務
yum install epel-release -y # 如果沒有擴展源,需要先安裝擴展源 yum install docker # 安裝,由于Docker要求Linux內核版本必須在要在3.10,所以centos6.X版本需要 yum install docker-io systemctl start docker.service # 開啟服務 docker info # 查看docker信息鏡像
修改鏡像源
默認源連不上,修改鏡像下載源,加入以下內容
vim etc/docker/daemon.json { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] }更多國內源如下:
# Docker 官方中國區 https://registry.docker-cn.com # 網易 http://hub-mirror.c.163.com # ustc https://docker.mirrors.ustc.edu.cn注意:docker版本在1.12以下需要找到docker配置文件
目錄位置為/etc/default/docker,如果沒有,那么就在/etc/sysconfig/docker,如果還是沒有,那么就去/etc/default/下創建一個docker文件吧。
搜索鏡像文件
docker search centos # 搜索centos拉取鏡像
docker pull docker.io/centos # 拉取 鏡像名刪除鏡像
docker rmi <鏡像名|鏡像ID>容器
創建容器
進入交互式容器
docker run -i -t docker.io/centos /bin/bash # -it可以連寫- docker run 創建容器
- -t 指定鏡像
- -i 交互式
進入交互式容器的/bin/bash后,可以輸入常用的操作命令,比如ls
指定容器名
docker run --name <容器名> -it <鏡像名> /bin/bash # --name 指定容器名端口映射
# 使用 -p 8000:80 創建端口映射(映射docker的80端口到物理機8000) # docker run -d -p 8000:80 -p 22:22 同時映射多個端口,比如22給ssh服務用,80給Django用,即凡是需要提供給外部訪問的,都需要作端口映射。 docker run --name ssh_server -it -p 8000:80 <鏡像名> /bin/bash注意:端口映射只能在docker run時操作
通過exit可以退出容器。
查看容器
docker ps # 正在運行的容器 docker ps -a # 所有的容器 docker ps -l # 最近一次的容器 docker ps -q # 最近一次的容器的id查看容器詳細信息
docker inspect <容器ID|容器名>結果類似于json數據,可以通過| grep來過濾需要的信息
啟動和關閉容器
docker start <容器名|容器ID> docker stop <容器名|容器ID>進入容器
進入容器前需要先啟動
# 這種方式可以進入正在運行的容器,但是exit退出時容器也就停止運行了 docker attach <容器名|容器ID> # 另一種方式進入容器,退出時容器不終止運行 docker exec -it test1 /bin/bash # /bin/bash必須加刪除容器
# 刪除一個容器 docker rm <容器名|容器ID> # 強制刪除一個正在運行的容器 docker rm -f <容器名|容器ID> # 刪除全部容器(使用 -f 可以強制刪除正在運行的容器) docker rm `docker ps -aq`說明:飄號內的內容會作為命令來執行,并將結果交給rm命令
容器打包成鏡像
docker save -o <導出的文件名.zip> <鏡像名> # 如果要指定路徑,必須先創建路徑中的文件夾# 比如: mkdir img docker save -o /img/vimenv.zip vimenv.img導入鏡像
docker load < <鏡像文件名.zip> # < 記住別漏了重定向符號- 導入之后使用docker images查看鏡像
- 使用導入的鏡像docker run來創建容器
- 新的容器內含以前打包好的項目的數據,直接運行
docker中使用systemctl命令
centos7中通過systemctl啟動服務,但是在docker中無法使用。解決方案:
1.啟動參數參數用/usr/sbin/init
docker run --name ssh_server -p 8000:22 -p 80:80 -it vimenv.img /usr/sbin/init這時會報錯:Operation not permitted,不管它
2新開一個終端,docker ps查看剛剛啟動的那個容器,docker stop 容器ID結束它
3重新啟動容器 docker start
4運行容器
docker exec -it <容器ID|容器名> /bin/bash5yum安裝openssh-server等需要的服務,然后就可以通過systemctl啟動服務了
通過端口映射訪問docker
- exec進入容器,passwd命令修改密碼
- Xshell或WinSCP軟件連接宿主機ip,端口是創建容器時映射的端口,輸入密碼即可。
總結
以上是生活随笔為你收集整理的Docker的简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入解析浅复制和深复制
- 下一篇: 应用DOM操作文档的一个实用例子