在Ubuntu中安裝Docker和docker的使用方式
1.卸載舊版本
- 刪除某軟件,及其安裝時(shí)自動(dòng)安裝的所有包
sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc
- 刪除docker其他沒(méi)有沒(méi)有卸載
dpkg -l | grep docker
- 卸載沒(méi)有刪除的docker相關(guān)插件(結(jié)合自己電腦的實(shí)際情況)
sudo apt-get autoremove docker-ce-*
- 刪除docker的相關(guān)配置&目錄
sudo rm -rf /etc/systemd/system/docker.service.d
sudo rm -rf /var/lib/docker
- 確定docker卸載完畢
docker --version
(apt-get remove 會(huì)刪除軟件包而保留軟件的配置文件 apt-get purge 會(huì)同時(shí)清除軟件包和軟件的配置文件)
2.在Ubuntu中安裝Docker
更新ubuntu的apt源索引
sudo apt-get update
安裝包允許apt通過(guò)HTTPS使用倉(cāng)庫(kù)
sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ software-properties-common
添加Docker官方GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
(國(guó)內(nèi)阿里云版 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -)
設(shè)置Docker穩(wěn)定版?zhèn)}庫(kù)
sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
添加倉(cāng)庫(kù)后,更新apt源索引
sudo apt-get update
安裝最新版Docker CE(社區(qū)版)
方式1:
sudo apt-get install docker-ce
選擇安裝docker-ce-cli和containerd.io
sudo apt-get install docker-ce-cli containerd.io
docker-ce-cli為遠(yuǎn)程連接工具,containerd.io將 Docker 與 OS 分離,還為非 Docker 容器管理器提供容器服務(wù)
安裝指定版本的
- 方式2:
查看可獲取的版本 apt-cache madison docker-ce
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
驗(yàn)證:
docker --version sudo docker run hello-world
將非root用戶加入docker組,以允許免sudo執(zhí)行docker
sudo gpasswd -a 用戶名 docker
或sudo usermod -a -G docker $USER
--可以設(shè)置用戶權(quán)限,注意執(zhí)行后須注銷重新登錄
重啟服務(wù)并刷新docker組成員
sudo service docker restart newgrp - docker
設(shè)置開機(jī)自啟動(dòng)并啟動(dòng) Docker-ce(安裝成功后默認(rèn)已設(shè)置并啟動(dòng),可忽略)
sudo systemctl enable docker sudo systemctl start docker
升級(jí)版本
sudo apt-get update
按照以上步驟安裝新版本
選擇安裝docker-compose
https://www.runoob.com/docker/docker-compose.html sudo curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose docker-compose --version
3.啟動(dòng)與停止
安裝完成Docker后,默認(rèn)已經(jīng)啟動(dòng)了docker服務(wù),如需手動(dòng)控制docker服務(wù)的啟停,可執(zhí)行如下命令
- 啟動(dòng)docker
sudo service docker start
- 停止docker
sudo service docker stop
- 重啟docker
sudo service docker restart
4.Docker鏡像操作
列出鏡像
docker images
REPOSITORY
:鏡像所在的倉(cāng)庫(kù)名稱TAG
:鏡像標(biāo)簽IMAGEID
:鏡像IDCREATED
:鏡像的創(chuàng)建日期(不是獲取該鏡像的日期)SIZE
:鏡像大小
搜索鏡像
docker search ubuntu
拉取鏡像
要想獲取某個(gè)鏡像,我們可以使用pull命令,從倉(cāng)庫(kù)中拉取鏡像到本地,如
docker pull hackeryx/ubuntu:16.04
刪除鏡像
docker image rm 鏡像名或鏡像id
或 docker rmi 鏡像名或鏡像id
5. Docker 容器操作
創(chuàng)建容器
docker run [option] 鏡像名:tag [向啟動(dòng)容器中傳入的命令]
常用可選參數(shù)說(shuō)明:
-i
表示以“交互模式”運(yùn)行容器-t
表示容器啟動(dòng)后會(huì)進(jìn)入其命令行。加入這兩個(gè)參數(shù)后,容器創(chuàng)建就能登錄進(jìn)去。即 分配一個(gè)偽終端。–name
為創(chuàng)建的容器命名-v
表示目錄映射關(guān)系(前者是宿主機(jī)目錄,后者是映射到宿主機(jī)上的目錄,即 宿主機(jī)目錄:容器中目錄),可以使 用多個(gè)-v 做多個(gè)目錄或文件映射。注意:最好做目錄映射,在宿主機(jī)上做修改,然后 共享到容器上。-d
在run后面加上-d參數(shù),則會(huì)創(chuàng)建一個(gè)守護(hù)式容器在后臺(tái)運(yùn)行(這樣創(chuàng)建容器后不 會(huì)自動(dòng)登錄容器,如果只加-i -t 兩個(gè)參數(shù),創(chuàng)建后就會(huì)自動(dòng)進(jìn)去容器)。-p
表示端口映射,前者是宿主機(jī)端口,后者是容器內(nèi)的映射端口??梢允褂枚鄠€(gè)-p 做多個(gè)端口映射-e
為容器設(shè)置環(huán)境變量–network=host
表示將主機(jī)的網(wǎng)絡(luò)環(huán)境映射到容器中,容器的網(wǎng)絡(luò)與主機(jī)相同
交互式容器
例如,創(chuàng)建一個(gè)交互式容器,并命名為myubuntu
docker run -it --name=ubuntu kochul2000/ubuntu20.04-apt-pip:latest /bin/bash
在容器中可以隨意執(zhí)行l(wèi)inux命令,就是一個(gè)ubuntu的環(huán)境,當(dāng)執(zhí)行exit命令退出時(shí),該容器也隨之停止。
守護(hù)式容器
創(chuàng)建一個(gè)守護(hù)式容器:如果對(duì)于一個(gè)需要長(zhǎng)期運(yùn)行的容器來(lái)說(shuō),我們可以創(chuàng)建一個(gè)守護(hù)式容器。在容器內(nèi)部exit退出時(shí),容器也不會(huì)停止。
docker run -itd --name=ubuntu2 --network=host kochul2000/ubuntu20.04-apt-pip:latest
進(jìn)入已運(yùn)行的容器
docker exec -it 容器名或容器id 進(jìn)入后執(zhí)行的第一個(gè)命令
docker exec -it ubuntu /bin/bash
查看容器
列出本機(jī)所有容器,包括已經(jīng)終止運(yùn)行的
docker ps -a
停止與啟動(dòng)容器
- 停止一個(gè)已經(jīng)在運(yùn)行的容器
docker container stop 容器名或容器id
- 啟動(dòng)一個(gè)已經(jīng)停止的容器
docker container start 容器名或容器id
- kill掉一個(gè)已經(jīng)在運(yùn)行的容器
docker container kill 容器名或容器id
刪除容器
docker container rm 容器名或容器id
或 docker rm 容器名或容器id
6. 將容器保存為鏡像
我們可以通過(guò)如下命令將容器保存為鏡像
docker commit [OPTIONS] CONTAINER [REPOSITORY]:[TAG]
OPTIONS說(shuō)明:
-a
:提交的鏡像作者;-c
:使用Dockerfile指令來(lái)創(chuàng)建鏡像;-m
:提交時(shí)的說(shuō)明文字;-p
:在commit時(shí),將容器暫停。
docker commit 容器名 鏡像名:tag
7. 鏡像備份與遷移
我們可以通過(guò)save命令將鏡像打包成文件,拷貝給別人使用
docker save -o 保存的文件名 鏡像名
例如
docker save -o ./ubuntu.tar ubuntu
在拿到鏡像文件后,可以通過(guò)load方法,將鏡像加載到本地
docker load -i ./ubuntu.tar
保存為tar.gz格式詳見(jiàn)http://www.dbjr.com.cn/server/339715p2d.htm
8.查看鏡像及其容器占用磁盤大小
- 命令:
docker system df
- 查看單個(gè)image、container大小:
docker system df -v
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
在IntelliJ IDEA中使用Docker的開發(fā)指南
這篇文章主要給大家介紹了在IntelliJ IDEA中使用Docker開發(fā)指南,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)我們的使用Docker有一定的幫助,需要的朋友可以參考下2023-09-09Docker容器上用DockerFile部署多個(gè)tomcat服務(wù)的步驟
這篇文章主要介紹了Docker容器上用DockerFile部署多個(gè)tomcat服務(wù)的步驟,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11docke-cli的調(diào)試環(huán)境搭建過(guò)程
在搭建docker-cli的調(diào)試環(huán)境時(shí),遇到很多坑,通過(guò)本文講解下搭建docke-cli的調(diào)試環(huán)境的詳細(xì)方法,需要的朋友可以參考下2022-11-11三款Docker圖形化工具優(yōu)缺點(diǎn)對(duì)比
大家好,本篇文章主要講的是三款Docker圖形化工具優(yōu)缺點(diǎn)對(duì)比,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-01-01Docker 容器互聯(lián)互通的實(shí)現(xiàn)方法
這篇文章主要介紹了Docker 容器互聯(lián)互通,本文講解不同網(wǎng)絡(luò)下的容器可以通過(guò)加入同一個(gè)docker網(wǎng)絡(luò),來(lái)訪問(wèn)該docker網(wǎng)絡(luò)下的容器,并且既可以通過(guò)容器ip也可以通過(guò)容器名連接,非常方便,需要的朋友可以參考下2022-10-10Docker上部署?nps?和?npc?實(shí)現(xiàn)內(nèi)網(wǎng)穿透
本文介紹了如何使用Docker部署nps和npc實(shí)現(xiàn)內(nèi)網(wǎng)穿透。nps是一款高性能的內(nèi)網(wǎng)穿透代理服務(wù)器,npc是nps的客戶端,可以將內(nèi)網(wǎng)服務(wù)映射到公網(wǎng)上。通過(guò)Docker的容器化技術(shù),可以方便地部署和管理nps和npc,同時(shí)保證了應(yīng)用的隔離性和安全性。2023-04-04