面向业务的docker笔记

面向业务的docker笔记


拉取最新镜像

1
docker pull ubuntu

创建容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。

1
docker run -p 8080:8080 -v /Users/yanweiran/hexo4fluid:/data --name hexo5 -t -i ubuntu:18.04 /bin/bash

注意,上述命令创建的docker container中,只能输入英文。

启动已经创建的容器,直接 docker start containerID

1
docker start b5b8a806c0f6

登陆正在运行的docker容器,b5b8a806c0f6为container ID。加入 env LANG=C.UTF-8,使得container允许中文输入。

1
docker exec -it b5b8a806c0f6 env LANG=C.UTF-8  /bin/bash

将容器提交为镜像,hexo5是container name,ubuntu18.04/hexofluid是image版本信息,意为在ubuntu18.04下搭建了,用于fluid的hexo博客环境。

1
docker commit hexo5 realdonaldtrump/ubuntu18.04:hexofluid

或者(已在腾讯云服务器正常运行过)

1
2
3
4
5
root@VM-4-13-ubuntu:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
38a63d317dae ubuntu:18.04 "/bin/bash" 10 hours ago Up 5 hours 0.0.0.0:8080->8080/tcp brl_checkIn
root@VM-4-13-ubuntu:~# docker commit -a "845523085@qq.com" -m "brlCheckIn" 38a63d317dae realdonaldtrump/brlcheckin:v1
sha256:b8d800ddf075c014223e03832276c613410a81c7846061b2c673bdb8c1a3d8e8

push自己的镜像,注意 tag 的名字斜线前面部分 realdonaldtrump 必须是本人的用户名,发现多了一个公共的 repository,否则会报错拒接访问。

1
2
3
4
5
6
7
8
9
10
11
root@VM-4-13-ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
realdonaldtrump/brlcheckin v1 b8d800ddf075 6 minutes ago 4.37GB
ubuntu 18.04 329ed837d508 11 days ago 63.3MB
root@VM-4-13-ubuntu:~# docker push realdonaldtrump/brlcheckin
The push refers to repository [docker.io/realdonaldtrump/brlcheckin]
c7d7db6b578a: Pushed
07adad8f2cae: Pushed
0dd1581dbc3c: Pushed
837d6facb613: Pushed
v1: digest: sha256:cf1c2b2383298604faf6365d54a2b838bc3812dbf0dd7bc8362b86d3d736e6d9 size: 1157

修改docker image的名字

1
2
3
4
# cp一个新的
docker tag brlcheckin:v1 realdonaldtrump/brlcheckin:v1
# 删除旧的
docker rmi brlcheckin:v1

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!