文章目錄
- 一、簡介
- 二、ubuntu安裝docker
- 1.刪除舊版本
- 2.安裝方法一
- 3. 安裝方法二(推薦使用)
- 4.運行Docker容器
- 5. 配置docker加速器
- 三、Docker鏡像操作
- 1. 拉取鏡像
- 2. 查看本地鏡像
- 3. 刪除鏡像
- 4. 鏡像打標簽
- 5. Dockerfile生成鏡像
- 四、Docker容器操作
- 1. 獲取鏡像
- 2. 啟動容器
- 3. 退出
- 4. 查看所有的容器
- 5. 啟動已停止運行的容器
- 6. 停止一個容器
- 7. 重啟容器
- 8.進入容器
- 9. 導入導出容器
- 10. 刪除容器
- 11. 查看容器端口的映射
- 12. 查看容器的日志
- 13. 一次性刪除所有的運行容器
- 14. 查看容器的信息
- 五、Docker容器測試
- 1.使用中科大鏡像加速器
- 2.把 Docker 配置為普通用戶訪問
- 3.拉取ubuntu18.04鏡像
- 4.運行鏡像進入容器
- 5. Docker安裝常用工具
- 6. 添加用戶
- 7. docker 文件的拷貝
- 8. 安裝ssh遠程連接
一、簡介
- ubuntu下使用docker為了解決不同廠家的核板需要搭建不通的虛擬機交叉編譯環境,使用docker就可以在一個虛擬機中完成多個核板的程序開發
- 本文記錄自己的安裝過程以及
Docker
命令的使用記錄
二、ubuntu安裝docker
1.刪除舊版本
sudo apt-get remove docker docker-engine docker.io containerd runc
2.安裝方法一
使用官方安裝腳本安裝
curl -fsSL https://test.docker.com -o test-docker.shsudo sh test-docker.sh
3. 安裝方法二(推薦使用)
- 更新 apt 包索引,輸入以下命令:
sudo apt-get update
- 安裝 apt 依賴包,用于通過 HTTPS 來獲取倉庫,輸入以下命令
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
- 添加 Docker 的官方 GPG 密鑰,輸入以下命令:
curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
- 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 通過搜索指紋的后 8 個字符,驗證現在是否擁有帶有指紋的密鑰,輸入以下命令:
sudo apt-key fingerprint 0EBFCD88
- 使用以下指令設置穩定版倉庫
sudo add-apt-repository \ "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \ $(lsb_release -cs) \ stable"
- 安裝 Docker Engine-Community
sudo apt-get update
- 安裝最新版本的 Docker Engine-Community 和 containerd,輸入以下命令
sudo apt-get install docker-ce docker-ce-cli containerd.io
4.運行Docker容器
- 啟動docker服務
service docker start
- 列出docker現有鏡像
docker images
- 配置docker服務開機自啟
systemctl enable docker
5. 配置docker加速器
中科大鏡像加速器
https://docker.mirrors.ustc.edu.cn
執行下面命令
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
三、Docker鏡像操作
1. 拉取鏡像
docker image pull 鏡像名稱
拉取最新版的 Ubuntu 鏡像
docker pull ubuntu
docker pull ubuntu:latest
2. 查看本地鏡像
docker images
3. 刪除鏡像
docker image rm 鏡像名或鏡像id
4. 鏡像打標簽
docker tag <鏡像ID或名稱> <新標簽名>
5. Dockerfile生成鏡像
生成一個dockerfile文件
vim dockerfile
################################################
#
#生成SSH服務的ubuntu鏡像
#
#################################################基于哪個鏡像生成新的鏡像
FROM ubuntu:20.04#作者名
MAINTAINER oldzhai#設置環境變量
ENV TZ Asia/Shanghai
ENV LANG zh_CN.UTF-8#執行命令
#替換為阿里源
RUN sed -i 's#http://archive.ubuntu.com/#http://mirrors.aliyun.com/#' /etc/apt/sources.list \&& sed -i 's#http://security.ubuntu.com/#http://mirrors.aliyun.com/#' /etc/apt/sources.list#更新軟件源并安裝軟件
#安裝ssh服務
RUN apt-get update -y \&& apt-get -y install iputils-ping \&& apt-get -y install wget \&& apt-get -y install net-tools \&& apt-get -y install vim \&& apt-get -y install openssh-server \&& apt-get clean && rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*#設置密碼
RUN echo 'root:root' |chpasswd#允許root用戶登入
RUN sed -ri 's/^#PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config#創建sshd目錄
RUN mkdir /var/run/sshd# 聲明端口
EXPOSE 22#開始ssh服務
CMD ["/usr/sbin/sshd", "-D"]
使用當前目錄的 Dockerfile 創建鏡像,標簽為 ubuntu_ssh:20.04
注:后面的 .表示當前目錄
使用docker images命令可以查看當前已有鏡像
docker build -t ubuntu_ssh:20.04 .
四、Docker容器操作
1. 獲取鏡像
如果我們本地沒有 ubuntu 鏡像,我們可以使用 docker pull 命令來載入 ubuntu 鏡像:
docker pull ubuntu
2. 啟動容器
docker run -it ubuntu /bin/bash//-v指定共享目錄
docker run -itd --name ubuntu01 -v /root/test:/root ubuntu//-p指定端口號 宿主機8088 容器內部是80
docker run -itd --name ubuntu01 -v /root/test:/root -p 8088:80 ubuntu
docker run -itd --name ubuntu01 -v /root/test:/root -p 127.0.0.1:8088:80 ubuntu//-v 共享目錄 將當前目錄掛載到容器的/data
//-p 端口
docker run -v $(pwd):/data -p 1022:22 --hostname ubuntu01 --privileged -it --rm ubuntu:18.04 /bin/bash
3. 退出
exit
4. 查看所有的容器
docker ps -a
5. 啟動已停止運行的容器
//使用 docker start 啟動一個已停止的容器
docker start b750bbbcfd88 //后臺運行在大部分的場景下,我們希望 docker 的服務是在后臺運行的,我們可以過 -d 指定容器的運行模式
docker run -itd --name ubuntu-test ubuntu /bin/bash
6. 停止一個容器
docker stop <容器 ID>
7. 重啟容器
停止的容器可以通過 docker restart 重啟
docker restart <容器 ID>
8.進入容器
如果從這個容器退出,容器不會停止,這就是為什么推薦大家使用 docker exec 的原因
docker exec -it 243c32535da7 /bin/bash
如果從這個容器退出,會導致容器的停止
docker attach 1e560fca3906
9. 導入導出容器
這種方式主要用于分享或遷移整個鏡像,包括所有版本、標簽和歷史
導出:
docker save -o <保存路徑>/myimage.tar myimage:latest
導入:
docker load -i <路徑>/myimage.tar
這種方式主要用于分享或遷移容器的當前狀態。這不包括容器的歷史或元數據,如環境變量,所以它常常用于對容器進行快照
導出:
docker export <容器ID> > mycontainer.tar
導入:
docker import mycontainer.tar
10. 刪除容器
刪除容器使用 docker rm 命令:
docker rm -f 1e560fca3906
下面的命令可以清理掉所有處于終止狀態的容器
docker container prune
11. 查看容器端口的映射
//bf08b7f2cd89 為容器的id
docker port bf08b7f2cd89
12. 查看容器的日志
docker logs -f bf08b7f2cd89
13. 一次性刪除所有的運行容器
docker rm -f `docker ps -a -q`
14. 查看容器的信息
docker inspect 730fde4da6ac
//過濾只查詢ip信息
docker inspect --format='{{.NetworkSettings.IPAddress}}' 730fde4da6ac
五、Docker容器測試
1.使用中科大鏡像加速器
上面設置了,可以直接跳過
sudo vim /etc/docker/daemon.json
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
重啟 docker 服務
sudo systemctl restart docker
2.把 Docker 配置為普通用戶訪問
//添加 docker 用戶組,輸入以下命令
sudo groupadd docker//將登陸用戶加入到 docker 用戶組中
sudo usermod -aG docker $USER//更新用戶組(這一步非常重要)
newgrp docker//重啟 docker 服務
sudo systemctl enable docker
sudo systemctl restart docker
3.拉取ubuntu18.04鏡像
sudo apt update
docker pull ubuntu:18.04
4.運行鏡像進入容器
docker container run -p 8000:3000 -it ubuntu:18.04 /bin/bash
-p 參數:容器的 3000 端口映射到本機的 8000 端口。
-it 參數:容器的 Shell 映射到當前的 Shell,然后你在本機窗口輸入的命令,就會傳
入容器。
ubuntu:18.04:image 文件的名字
/bin/bash:容器啟動以后,內部第一個執行的命令。這里是啟動 Bash,保證用戶可以使
用 Shell。
5. Docker安裝常用工具
apt update
apt install byobu vim-gtk inetutils-ping net-tools wget cpio unzip rsync xz-utils bc time
過程中需要配置地區,選擇亞洲上海:
6. 添加用戶
設置超級用戶
apt install sudo
添加普通用戶
visudo
添加自己的用戶名,保存并退出
oldzhai ALL=(ALL:ALL) ALL
adduser oldzhai
切換到普通用戶
su oldzhai
7. docker 文件的拷貝
//docker cp 主機的目錄文件 容器運行id:容器路徑
docker cp /home/topeet/topeet-qt5.14.2/ bc1d9b59bc0b:/home/topeet/project///容器文件 拷貝到虛擬機
docker cp bc1d9b59bc0b:/home/topeet/project/ /home/topeet/topeet-qt5.14.2/
8. 安裝ssh遠程連接
行容器指定端口
-p 參數:容器的 22 端口映射到本機的 10022 端口
docker run -v $(pwd):/data -p 1022:22 --hostname ubuntu01 --privileged -it --rm ubuntu:18.04 /bin/bash
安裝ssh
apt update
apt-get install ssh