Docker試玩

1. Ubuntu中安裝docker

sudo apt-get update 
sudo apt-get install docker-io

1.1 CentOS7中安裝docker

安裝docker

yum -y install docker-io

yum list installed | grep docker

啟動(dòng)docker

systemctl restart docker

2. 基于基礎(chǔ)鏡像Ubuntu制作新鏡像

1)下拉基礎(chǔ)鏡像Ubuntu

docker pull <鏡像名稱>  如: docker pull ubuntu

2)運(yùn)行交互式容器

docker run (--name=容器名稱,自定義) -it 鏡像名 /bin/bash

注意: 如果啟動(dòng)報(bào)如下的錯(cuò)誤,解決辦法如下所示:

錯(cuò)誤提示: [root@izj6c0zsm04q86s2tu4e12z /]# docker run -it docker.io/ubuntu:latest /bin/bash
/usr/bin/docker-current: Error response from daemon: oci runtime error: container_linux.go:235: starting container process caused "process_linux.go:258: applying cgroup configuration for process caused \"Cannot set property TasksAccounting, or unknown property.\"".

解決辦法: yum update

3)如果已退出容器,則使用exec參數(shù)進(jìn)行容器,安裝相關(guān)py庫(kù)(pip install -r xxx.txt)

docker exec -it 容器名或者容器的id /bin/bash

4)將安裝好插件的容器編譯好鏡像并上傳鏡像

docker commit -a 作者 -m '注解' 容器名 鏡像名:鏡像版本號(hào)
docker push 鏡像名:鏡像版本號(hào)

3. 容器基本操作

1)查看運(yùn)行中的容器

docker ps

2)查看建立的容器

docker ps -a 或者 -l

3)停止守護(hù)式容器]()

docker stop 容器id/容器名(停止容器,需要等容器處理完邏輯才停止)
docker kill 容器id/容器名(直接停止容器)

4)重新啟動(dòng)停止的容器

docker start 容器id/容器名

5)刪除容器

docker rm 容器id/容器名

6)退出容器但不關(guān)閉容器

control+p+q鍵一起按

7)查看鏡像

docker images

8)刪除鏡像

docker rmi 鏡像id/鏡像名

docker學(xué)習(xí)網(wǎng)站

http://www.docker.org.cn/

容器常用的操作命令
docker ps

docker ps -a

docker run -it 鏡像 /bin/bash

ctrl + p + q

docker -stop

docker -rm 容器id

docker -rmi 鏡像
容器安裝環(huán)境
apt update

apt install python3

apt install python3-pip

apt install vim

apt install git

apt install net-tools

docker commit -a 作者 -m '注解' 容器id 鏡像名:鏡像版本號(hào)

docker run -itdp 8080:5000 blog:v1 /bin/bash
docker 私服搭建
docker pull registery

第一種:

docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry_new registry:latest

第二種(簡(jiǎn)單的)

docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 docker.io/registry

創(chuàng)建鏡像

docker run -it --name='blogv2' blog:v1 /bin/bash
docker commit -a Roctey -m '基礎(chǔ)2blog' 容器id 地址:端口/blogbase:v1

上傳鏡像

修改/etc/docker/daemon.json中的內(nèi)容,添加鏡像倉(cāng)庫(kù)地址insecure-registries參數(shù)

{
    "registry-mirrors":["https://registry.docker-cn.com"],
     "insecure-registries":["47.240.32.247:5000"]
}
docker push 地址:端口/blogbase:v1
拉鏡像
# 在home目錄下創(chuàng)建文件夾

touth Dockerfile

# 寫文件

FROM 47.240.32.247:5000/blogbase:v1

ADD ./BlogPro /home/BlogPro

WORKDIR /home/BlogPro

ENTRYPOINT ["python3"]

CMD ]["manage.py", "runserver", "0.0.0.0:8000"]   #django

CMD ]["manage.py", "runserver","-h", "0.0.0.0","-p", "8000"]    #flask 

# 創(chuàng)建容器

docker build -t blognew
解決docker容器中文亂碼,修改docker容器編碼格式

查看配置文件均已經(jīng)設(shè)置成了UTF-8

查看docker容器編碼格式: 執(zhí)行locale命令,可以看到當(dāng)前編碼格式為POSIX,而這種編碼格式不支持中文.

locale -a查看容器所有語(yǔ)言環(huán)境

C.UTF-8可以支持中文,只需要把容器編碼設(shè)置為C.UTF-8即可

1.臨時(shí)修改:

? locale

? locale -a

? LANG=C.UTF-8 (有的是zh_CN.UTF-8,不過我在本地沒發(fā)現(xiàn)這種編碼)

export LC_ALL=C.UTF-8

source /etc/profile

2.永久修改:修改Dockerfile

在Dockerfile中添加一行

ENV LANG C.UTF-8

重新制作docker鏡像,docker run -ti [鏡像] 進(jìn)入容器后執(zhí)行l(wèi)ocale發(fā)現(xiàn)編碼格式已經(jīng)被修改為C.UTF-8,之前出現(xiàn)的中文文件名亂碼問題也沒有了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容