docker簡單使用和遇到的坑


安裝環境: alios7.2 

安裝:

1安裝源

# yum install epel-release –y
# yum clean all
# yum list

2:安裝docker

# yum install docker-io –y
# systemctl start docker

3:檢查docker

# docker info

4啟停查看

# systemctl start docker     #運行Docker守護進程
# systemctl stop docker      #停止Docker守護進程
# systemctl restart docker   #重啟Docker守護進程

使用

1創建dockerfile

FROM reg.docker.alibaba-inc.com/alibase/alios7u2:latest #這里是使用alios作為基礎鏡像

#下載一個yum源
RUN yum clean all
RUN yum install -y python-devel mysql-devel zlib-devel opnssl-devel
RUN rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
RUN wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
RUN yum makecache

#下面部分是docker啟動后會運行的命令
CMD systemctl start nginx
CMD systemctl start redis
CMD rabbitmq-server start

2:根據daockerfile創建daocker鏡像

docker build <path> #path代表dockerfile所在的文件夾路徑

3:

基礎命令 sudo docker images

這一條是查看當前設備宿主機中有幾個docker 鏡像 當然這些是沒有啟動

repository 代表docker的名字

tag 代表當前版本號

image id 代表當前宿主機內鏡像的唯一id

created 代表創建了多久了

size 代表鏡像的大小

基礎命令 sudo docker ps 

查看當前正在運行的docker

container id 代表運行中的唯一id

4:

啟動命令

需要知道docker images id

sudo docker run -d -p 宿主機端口:docker端口 -p 宿主機端口2:docker端口2 -p 宿主機端口3:docker端口3<docker image id> /usr/sbin/init

這里的/usr/sbin/init 是為了開啟之后可以使用systemctl方法

5:

進入docker容器中

docker exec -i -t <docker_name>  bash

 為什么要用bash呢 因為bash后 里面的是彩色的呀,因為好看呀

6:daocker上傳這個可以找一個dockerhub看看

7:

從主機復制到容器

​ sudo docker cp host_path containerID:container_path

sudo docker cp 我是宿主機的路徑   docker ps能夠看到的id:我是容器中的路徑

從容器復制到主機

​ sudo docker cp containerID:container_path host_path

sudo docker cp  docker ps能夠看到的id:我是容器中的路徑 我是宿主機的路徑

啟動一個容器

​ sudo docker start <docker_name>

停止一個容器

​ sudo docker stop <docker_name>

刪除一個容器

sudo docker rm <docker_name>

通過docker的docker <image id> 刪除容器

​ sudo docker rmi -f <image id>>

 

8:問題

為什么我們在安裝好docker.io啟動的時候啟動不起來

首先確認是否是阿里雲的ecs中安裝docker

如果是的 可以route查看是否使用了172.16.0.0網段 如果有那么刪除了

雖然不知道為啥 阿里ecs出現這個問題但是刪了之后systemctl start docker之后應該就可以了

注意事項

dockerfile中的cmd命令通常在build的時候是檢測不出來錯誤的

但是當你run的時候發現docker ps 沒有起來

是不是很蒙逼, 你可以docker ps -a 來查看所有的 

然后在docker logs containerID

關於 docker build報錯/bin/sh: 1: ./configure: not found 問題

docker build命令根據Dockerfile文件構建鏡像的過程中,除了FROM指令外,其他的每一條指令都是在一個新的容器里面運行

今天把Dockerfile文件寫成了如下的樣子

  1. RUN cd /app
  2. RUN ./configure

結果就報configure文件不存在,但是文件的的確確是存在的,原因就是運行第2條指令時在新的容器里面,第1條指令的切換目錄失效了

解決的辦法就是將上面的2條指令合並在一起    

 

在就沒啥 要說的

有啥要說的我會補充

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM